2016-04-03 58 views
1

我在屏幕左側有幾個菜單項,每個在網站上打開一個新頁面。在其中一個頁面上,有一個對python的異步ajax調用,可以成功返回一堆數據。如何在打開新網頁時中斷ajax請求?

但是,當我打開此頁面並快速單擊另一個菜單項以打開另一個頁面而不等待ajax請求完成時,我收到[Object object]錯誤。

postData = {"userid":userid, "current":dict_current, "step":dict_step}; 

$.ajax({ 
    url: "/cgi-bin/get_dictionary.py", 
    type: "post", 
    datatype:"json", 
    async : true, 
    data: {postData}, 
    success: function(response){ 
     //parse json 
     var json = $.parseJSON(response); 
    } 
}) 
.fail(function(err) { 
    alert("error" + err); //[Object object] 
}); 

所以我想,我應該以某種方式中止請求,當我打開一個新的頁面,但我怎麼訪問請求?

這裏做的最好的事情是什麼?

+0

http://stackoverflow.com/questions/446594/abort -ajax-requests-using-jquery – GillesC

回答

1

爲您的ajax請求添加一個變量名稱。 首先定義變量。

var ajaxreq; 

然後使用該變量爲您的Ajax請求:

ajaxreq = $.ajax(...); 

並中止對頁卸載阿賈克斯:

$(window).unload(function() { 
    ajaxreq.abort(); 
}); 
+1

卸載不起作用,但是'window.onbeforeunload = function(){ajaxreq.abort();}; did'。謝謝!但說實話,最簡單的解決方案是不要提醒錯誤。問題是如果它在表現方面沒問題 – erdomester

相關問題