2012-07-26 101 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