Как поймать сеть:: ERR_CONNECTION_REFUSED
Есть ли способ поймать failed to load resource: net::ERR_CONNECTION_REFUSED
, я пробовал:
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);
}
Функция сбоя может быть заражена, но я не получил информации об ошибке, либо она:
- ERR_NAME_NOT_RESOLVED
- ERR_CONNECTION_REFUSED
- ERR_BLOCKED_BY_CLIENT
- ERR_TUNNEL_CONNECTION_FAILED (при использовании прокси)
или что-нибудь еще.. вопрос будет, как получить такую ошибку?
Ответы
Ответ 1
Я даже пытался достичь цели, используя 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);
}
Ответ 2
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();
Альтернативным способом получения ошибок, которые могут быть легче понять позже, является обработчик события onerror. Из того, что я видел, он не даст вам более полезной информации, чем решение Киранса.
Ответ 3
У вас есть доступ к онлайн/оффлайн в 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();
Перед вызовом ajax, проверьте " _Network_state "