2016-04-03 49 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