jQuery:在Chrome中Ajax请求中止

时间:2012-07-26 09:33:44

标签: jquery ajax google-chrome

我在Chrome中遇到以下问题:如果我在ajax请求期间点击页面上的锚点(将我重定向到其他页面),则会调用错误处理程序。我想确定它是否是真正的错误。

  • 未调用中止处理程序
  • 错误为空
  • xhr.status为0
  • xhr.statusText是“错误”

代码:

$.ajaxSetup({
    error: function (xhr, status, error) {
        ...
    },
    abort: function () {
        ...
    }
});

1 个答案:

答案 0 :(得分:3)

使用onbeforeunload事件在卸载页面之前中止所有请求。这样,您将在status = 'abort'中获得status = 'error'而不是error: function(xhr, status, error){}

var request;

window.onbeforeunload = function() {
    if(request !== undefined) {
        request.abort();
    }
}

request = $.ajax({ ... });

示例我已经在以下方面测试了此解决方案:

http://jsfiddle.net/vLrYm/7/