如何检查浏览器是否中止了ajax请求

时间:2012-02-24 06:59:28

标签: javascript jquery ajax firefox

我正在对我的服务器进行长时间轮询ajax请求

$.ajax({
    url: "someurl.com", 
    success: function(resp) { ... },
    error: function() { ... }
});

但如果短时间内存在一些互联网连接问题 Firefox 10中止请求,因此我的脚本不会收到服务器的响应 (在旧版本的FF中,没有这样的请求中止)。

我怎样才能发现浏览器中止了我的ajax请求?也许有一些事件呢?或者,如果网络连接断开,我可以强制浏览器不中止我的ajax请求吗?

2 个答案:

答案 0 :(得分:2)

对于XMLHTTPRequest,它提供状态"0",表示request not initialized。您可以捕获该状态并知道req已被中止。

答案 1 :(得分:0)

也许您可以为通话添加超时?

  $.ajax({
        url: "test.html",
        error: function(){
            // will fire when timeout is reached
        },
        success: function(){
            //do something
        },
        timeout: 3000 // sets timeout to 3 seconds
    });