0

如果我正在调用的服务器已关闭(可能是由于 DNS 问题),我如何捕获错误?

这不这样做:

error: function( req, status, err ) {
    console.log( 'server unreachable', status, err );
  },

如果我使用我知道在模拟调用中无法解析的 url,我不会收到任何错误。

更新:

这似乎适用于一些快速而肮脏的测试用例:

timeout: 3000,
    error: function(x, t, m) {
        if(t==="timeout") {
            alert("got timeout so probably unreachable");
        } 

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

4

2 回答 2

1

您还可以在 ajax 调用中添加这样的选项:

statusCode:{
    404: function(){
        alert('Page not found');
    },
    500: function(){
        alert('Page not found');
    },
    408: function(){
        alert('Request Timeout');
    }
},

* 408 是请求超时的http状态码。

虽然它在功能上与您的示例相似,但它更简洁一些,并且允许您在将来处理更多错误。

于 2013-10-25T18:43:12.127 回答
0

将在我的更新中使用该方法。

于 2013-10-20T15:17:23.347 回答