【问题标题】:How to check if ajax request was aborted by browser如何检查浏览器是否中止了ajax请求
【发布时间】:2012-03-14 15:56:23
【问题描述】:

我正在向我的服务器发出长轮询 ajax 请求

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

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

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

【问题讨论】:

标签: javascript jquery ajax firefox


【解决方案1】:

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

【讨论】:

  • 但是我传递给 jQuery.ajax 函数的成功和错误函数都没有被执行,所以我怎样才能得到这个状态
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    相关资源
    最近更新 更多