Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

249
Visualizações
Manejo de errores de Jquery Ajax para ignorar abortado

Quiero tener un método global de manejo de errores para llamadas ajax, esto es lo que tengo ahora:

 $.ajaxSetup({ error: function (XMLHttpRequest, textStatus, errorThrown) { displayError(); } });

Necesito ignorar el error de aborted . errorThrown es nulo y textStatus es error . ¿Cómo verifico aborted ?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Tuve que lidiar con el mismo caso de uso hoy. La aplicación en la que estoy trabajando tiene estas llamadas ajax de larga duración que pueden ser interrumpidas por 1) el usuario navegando o 2) algún tipo de falla temporal de conexión/servidor. Quiero que el controlador de errores se ejecute solo en caso de falla de conexión/servidor y no para que el usuario se vaya.

Primero probé la respuesta de Alastair Pitts, pero no funcionó porque tanto las solicitudes abortadas como la falla de conexión establecieron el código de estado y readyState en 0. Luego, probé la respuesta de sieppl; tampoco funcionó porque en ambos casos, no se da respuesta, por lo tanto, no hay encabezado.

La única solución que funcionó para mí es establecer un oyente para window.onbeforeunload, que establece una variable global para indicar que la página se ha descargado. El controlador de errores puede verificar y solo llamar al controlador de errores solo si la página no se ha descargado.

 var globalVars = {unloaded:false}; $(window).bind('beforeunload', function(){ globalVars.unloaded = true; }); ... $.ajax({ error: function(jqXHR,status,error){ if (globalVars.unloaded) return; } });
over 4 years ago · Santiago Trujillo Relatório

0

En jQuery moderno, puede verificar si request.statusText es igual a 'abort' :

 error: function (request, textStatus, errorThrown) { if (request.statusText =='abort') { return; } }
over 4 years ago · Santiago Trujillo Relatório

0

Algo que encontré es que cuando hay una solicitud abortada, el status y/o readyState igual a 0 .

En mi controlador de errores global, tengo una marca en la parte superior del método:

 $(document).ajaxError(function (e, jqXHR, ajaxSettings, thrownError) { //If either of these are true, then it's not a true error and we don't care if (jqXHR.status === 0 || jqXHR.readyState === 0) { return; } //Do Stuff Here });

He encontrado que esto funciona perfectamente para mí. Espero que esto te ayude a ti, o a cualquier otra persona que se encuentre con esto :)

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda