打开新网页时如何中断ajax请求?

时间:2016-04-03 10:53:36

标签: javascript ajax

我在屏幕左侧有几个菜单项,每个菜单项在网站上打开一个新页面。在其中一个页面上有一个异步的ajax调用python,它成功地返回了一堆数据。

但是,当我打开此页面并快速单击另一个菜单项打开另一个页面而不等待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]
});

所以我想,当我打开一个新页面时,我应该以某种方式中止请求,但是如何访问该请求呢?

这里最好的事情是什么?

1 个答案:

答案 0 :(得分:1)

为您的ajax请求添加变量名称。 首先定义变量。

var ajaxreq;

然后将该变量用于您的ajax请求:

ajaxreq = $.ajax(...);

并中止ajax页面卸载:

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