如果$ .ajax调用DNS错误,则会出现错误?

时间:2013-10-20 00:04:10

标签: jquery

如果我正在呼叫的服务器出现故障(可能是因为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");
        } 

但是,这真的是最好的接近方式吗?

2 个答案:

答案 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状态代码。

虽然它在功能上与你的例子相似,但它有点整洁,可以让你在将来处理更多的错误。