2012-02-24 112 views
0

中止我正在長輪詢Ajax請求到我的服務器如何檢查是否AJAX請求是由瀏覽器

$.ajax({ 
    url: "someurl.com", 
    success: function(resp) { ... }, 
    error: function() { ... } 
}); 

但如果是針對短時間內一些互聯網連接問題 的Firefox 10將中止請求,因此我的腳本沒有收到來自服務器 的響應(在舊版本的FF中,沒有這種請求正在中止)。

如何才能知道我的ajax請求被瀏覽器中止了?也許有一些事件呢?或者,如果網絡連接斷開,我可以強制瀏覽器不要中止我的ajax請求?

+0

如何尋找這個第一:http://stackoverflow.com/questions/3648309/how-to-detect-if-a-request-was-aborted – 2012-02-24 07:05:17

+0

不同的是,瀏覽器返回無反應在我的情況下 – tsds 2012-02-24 07:16:12

回答

2

對於XMLHTTPRequest,它給出狀態"0"request not initialized。您可以獲知該狀態並知道req已被中止。

+0

,但沒有成功和錯誤的函數,我傳遞給jQuery.ajax函數執行,所以我怎麼能得到這個狀態 – tsds 2012-02-24 07:15:12

+0

這個解決方案是JavaScript的我不知道關於JQuery .. – Ved 2012-02-24 07:17:20

0

也許你可以添加一個超時的通話?

$.ajax({ 
     url: "test.html", 
     error: function(){ 
      // will fire when timeout is reached 
     }, 
     success: function(){ 
      //do something 
     }, 
     timeout: 3000 // sets timeout to 3 seconds 
    }); 
相關問題