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

630
Visualizações
Cómo atrapar la red::ERR_CONNECTION_REFUSED

¿Hay alguna manera de capturar failed to load resource: net::ERR_CONNECTION_REFUSED , lo he intentado:

 try { $.post('',{},function(res) { }).fail(function (xhr, textStatus, errorThrown) { xhr.textStatus = textStatus; xhr.errorThrown = errorThrown; console.log('fail',xhr); // how to get the 'ERR_CONNECTION_REFUSED' or anything else as string? }); } catch(e) { console.log('catch',e); }

La función de falla podría detectar, pero no obtuve información sobre el error, ya sea:

  • ERR_NOMBRE_NO_RESUELTO
  • ERR_CONEXIÓN_RECHAZADA
  • ERR_BLOCKED_BY_CLIENTE
  • ERR_TUNNEL_CONNECTION_FAILED (al usar proxy)

o cualquier otra cosa... la pregunta sería, ¿cómo obtener el tipo de error?

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

0

Incluso traté de lograr el objetivo usando javascript XMLHttpRequest()

 var xhttp= new XMLHttpRequest(); try{ xhttp.onreadystatechange = function() { console.log(xhttp); if (xhttp.readyState == 4 && xhttp.status == 0) { alert("Unknown Error Occured. Server response not received."); } }; xhttp.open("POST", "http://localhost:8080/data", true); xhttp.send(); }catch(e){ console.log('catch', e); }

El fragmento anterior solo brinda un manejo genérico de errores, mientras que no obtengo la razón exacta detrás del error. La sentencia try...catch no detecta nada, porque ninguna de las funciones dentro del bloque try genera excepciones. Parece que XMLHttpRequest se está ejecutando en un subproceso en segundo plano, por lo que su error de tiempo de ejecución no se puede capturar.

Como jQuery es una biblioteca que en realidad es un javascript, también se comportará igual para $.post() porque $.post() también usa XMLHttpRequest detrás de la cortina.

A continuación se muestra la versión de jQuery, que también manejará el error genérico, ya que no podemos saber exactamente el motivo del error.

 try { $.post('http://localhost:8080/data', {}, function(res) {}).fail(function() { alert("Unknown Error Occured. Server response not received."); }); } catch (e) { console.log('catch', e); }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Conclusión

Como javascript XMLHttpRequest() todavía no es lo suficientemente eficiente para manejar diferentes estados de error, no podemos saber el motivo exacto detrás del error de red para las solicitudes AJAX. Solo podemos capturar errores genéricos y algunos otros códigos de estado conocidos como

"404" para el archivo no encontrado

"500" para el servidor no responde

Se puede saber más en https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Actualización: Ha pasado mucho tiempo desde la última vez que actualicé esta publicación. Vi pocas respuestas que intentan lograr objetivos similares pero aún con muy poco éxito. Como se mencionó en algunas de las respuestas en este hilo, también podemos usar la función de devolución de llamada XMLHttpRequest.onerror para detectar algunos errores genéricos, pero si todavía está trabajando con IE, entonces tal vez no funcione.

over 4 years ago · Santiago Trujillo Relatório

0

var xhttp= new XMLHttpRequest(); xhttp.onreadystatechange = function() { console.log(xhttp); xhttp.onerror = function(e){ alert("Unknown Error Occured. Server response not received."); }; xhttp.open("POST", "http://localhost:8080/data", true); xhttp.send();

Una forma alternativa de obtener errores que podría ser más fácil de entender más adelante es el controlador de eventos onerror. Por lo que he visto, no te dará más información útil que la solución de Kiran.

over 4 years ago · Santiago Trujillo Relatório

0

Tienes acceso en línea/fuera de línea en Chrome.

 var _Network_state = true; function updateIndicator() { // Show a different icon based on offline/online if (navigator.onLine) { // true|false // ... do other stuff _Network_state = true; } else { // ... do other stuff _Network_state = false; } console.info(_Network_state ? 'Online' : 'Offline'); } // Update the online status icon based on connectivity window.addEventListener('online', updateIndicator); window.addEventListener('offline', updateIndicator); updateIndicator();

Antes de llamar a ajax, inspeccione " _Network_state "

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