有没有办法抓住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);
}
fail函数可以捕获,但我没有得到任何关于错误的信息,或者它是:
- 错误名称未解决
- 错误_连接_拒绝
- 客户端阻塞错误
- 隧道连接失败错误(使用代理时)
或者其他什么...问题是,如何得到这种错误?
4条答案
按热度按时间l3zydbqr1#
我甚至尝试使用javascript
XMLHttpRequest()
来实现这个目标上面的代码片段只给出了一般的错误处理,而我没有得到错误背后的确切原因。
try...catch
语句无法捕获任何东西,因为try块中的函数都没有抛出任何异常。看起来XMLHttpRequest
正在后台线程中运行,所以它的运行时错误无法捕获。由于jQuery是一个实际上是javascript的库,它对
$.post()
的行为也是一样的,因为$.post()
也在幕后使用XMLHttpRequest
。下面是jQuery版本,它也将处理一般错误,因为我们不能确切地知道错误的原因。
x一个一个一个一个x一个一个二个x
由于javascript
XMLHttpRequest()
在处理不同的错误状态时仍然不够有效,我们无法知道AJAX请求网络错误的确切原因。我们只能捕获一般错误和一些其他已知的状态代码,如404页面未找到
"500"表示服务器无响应
更多信息可从https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html了解
XMLHttpRequest.onerror
回调函数来捕捉一些常见错误,但如果你仍然在使用IE,那么它可能不会工作。gg0vcinb2#
另一种获取错误的方法是onerror事件处理程序,它可能更容易理解,从我所看到的来看,它不会给予比Kirans解决方案更有用的信息。
dhxwm5r43#
这些类型的错误发生在与服务器没有连接时(意味着服务器没有运行)。我遇到了这个错误,但通过查看它,发现没有消息,因此我的解决方案是捕获所有没有如下消息的错误:
希望这能解决你的问题!
o8x7eapl4#
您可以在chrome中访问在线/离线。
在调用 AJAX 之前,检查“_Network_state”