Olası bir videoyu izlemek ve raporlamak için bu kodu deneyin net::ERR_INSECURE_RESPONSE
Chrome Ayarları'na kaydetmemeyi seçtiğim kendinden imzalı bir sertifika kullanarak da bu sorunu yaşıyordum. Https etki alanına erişip sertifikayı kabul ettikten sonra ajax çağrısı düzgün çalışır. Ancak bu kabul zaman aşımına uğradığında veya ilk kabul edilmeden önce jQuery.ajax()
çağrı sessizce başarısız olur: timeout
parametre yardım gibi görünmez ve error()
işlev asla çağrılmaz.
Bu nedenle, kodum asla bir success()
veya error()
çağrı almaz ve bu nedenle askıda kalır. Bu jquery bu hatayı ele bir hata olduğuna inanıyorum. Benim çözümümerror()
belirtilen bir zaman aşımından sonra çağrıyı .
Bu kod, formun jquery ajax çağrısını varsayar. jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})
.
Not: Büyük olasılıkla setTimeout
, çağırmak yerine UI'nızla en iyi şekilde entegre etmek için içindeki işlevi değiştirmek isteyeceksiniz 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);
}