Experimente este código para procurar e relatar uma possível net::ERR_INSECURE_RESPONSE
Eu também estava com esse problema, usando um certificado autoassinado, que decidi não salvar nas Configurações do Chrome. Depois de acessar o domínio https e aceitar o certificado, a chamada ajax funciona bem. Porém, uma vez que a aceitação excedeu o tempo limite ou antes de ser aceita pela primeira vez, a jQuery.ajax()
chamada falha silenciosamente: o timeout
parâmetro não parece ser útil e a error()
função nunca é chamada.
Como tal, meu código nunca recebe uma chamada success()
ou error()
e, portanto, trava. Eu acredito que isso seja um bug no manuseio desse erro pelo jquery. Minha solução é forçar a error()
chamada após um tempo limite especificado.
Este código assume uma chamada jquery ajax do formulário jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})
.
Nota: Você provavelmente desejará alterar a função dentro de setTimeout
para integrar melhor à sua interface do usuário: em vez de chamar 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);
}