Pruebe este código para observar e informar sobre un posible net::ERR_INSECURE_RESPONSE
También tenía este problema, usando un certificado autofirmado, que elegí no guardar en la Configuración de Chrome. Después de acceder al dominio https y aceptar el certificado, la llamada ajax funciona bien. Pero una vez que la aceptación ha expirado o antes de que se haya aceptado por primera vez, la jQuery.ajax()
llamada falla en silencio: el timeout
parámetro no parece ayudar y elerror()
nunca se llama a función.
Como tal, mi código nunca recibe una llamada success()
o, error()
por lo tanto, se cuelga. Creo que este es un error en el manejo de jquery de este error. Mi solución es forzar elerror()
llamada después de un tiempo de espera especificado.
Este código asume una llamada jquery ajax del formulario jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})
.
Nota: Es probable que desee cambiar la función dentro setTimeout
para integrarse mejor con su IU: en lugar de llamar 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);
}