jQuery:Ajax请求在Chrome中中止



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

  • 未调用中止处理程序
  • error为空
  • xhr.status为0
  • xhr.statusText为"error"

代码:

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

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

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

示例:我在上测试了这个解决方案

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

最新更新