Coba kode ini untuk ditonton, dan laporkan, kemungkinan net::ERR_INSECURE_RESPONSE
Saya juga mengalami masalah ini, menggunakan sertifikat yang ditandatangani sendiri, yang saya pilih untuk tidak disimpan ke dalam Pengaturan Chrome. Setelah mengakses domain https dan menerima sertifikat, panggilan ajax berfungsi dengan baik. Tetapi begitu penerimaan telah habis waktu atau sebelum pertama kali diterima, jQuery.ajax()
panggilan gagal diam-diam: timeout
parameter tampaknya tidak membantu dan error()
fungsi tidak pernah dipanggil.
Karena itu, kode saya tidak pernah menerima success()
atau error()
menelepon dan karenanya hang. Saya percaya ini adalah bug dalam penanganan kesalahan ini oleh jquery. Solusi saya adalah memaksa error()
panggilan setelah batas waktu yang ditentukan.
Kode ini mengasumsikan panggilan jquery ajax dari formulir jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})
.
Catatan: Anda mungkin ingin mengubah fungsi di dalam setTimeout
untuk mengintegrasikan terbaik dengan UI Anda: daripada menelepon alert()
.
const MS_FOR_HTTPS_FAILURE = 5000;
$.orig_ajax = $.ajax;
$.ajax = function(params)
{
var complete = false;
var success = params.success;
var error = params.error;
params.success = function() {
if(!complete) {
complete = true;
if(success) success.apply(this,arguments);
}
}
params.error = function() {
if(!complete) {
complete = true;
if(error) error.apply(this,arguments);
}
}
setTimeout(function() {
if(!complete) {
complete = true;
alert("Please ensure your self-signed HTTPS certificate has been accepted. "
+ params.url);
if(params.error)
params.error( {},
"Connection failure",
"Timed out while waiting to connect to remote resource. " +
"Possibly could not authenticate HTTPS certificate." );
}
}, MS_FOR_HTTPS_FAILURE);
$.orig_ajax(params);
}