我在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/