2012-07-26 104 views
1

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

  • 中止处理
  • 错误是空
  • xhr.status为0
  • xhr.statusText是 “错误”

代码:

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

是你的Ajax请求的异步? – arthur86 2012-07-26 09:36:46

+0

yes____________ – 2012-07-26 09:48:53

回答

3

在页面解除前,使用onbeforeunload事件中止所有请求d。这样你将得到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/

+0

请查看:http://stackoverflow.com/a/8841412/639829 – 2013-07-19 10:25:05