如果我正在呼叫的服务器出现故障(可能是因为DNS问题),如何捕获错误?
这不能做到:
error: function( req, status, err ) {
console.log( 'server unreachable', status, err );
},
如果我使用一个我知道无法在模拟调用中解析的网址,我就不会收到任何错误。
更新
这似乎适用于一些快速而肮脏的测试用例:
timeout: 3000,
error: function(x, t, m) {
if(t==="timeout") {
alert("got timeout so probably unreachable");
}
但是,这真的是最好的接近方式吗?
答案 0 :(得分:0)
将在我的更新中使用该方法。
答案 1 :(得分:0)
你也可以在你的ajax调用中添加这样的选项:
statusCode:{
404: function(){
alert('Page not found');
},
500: function(){
alert('Page not found');
},
408: function(){
alert('Request Timeout');
}
},
* 408是请求超时的http状态代码。
虽然它在功能上与你的例子相似,但它有点整洁,可以让你在将来处理更多的错误。