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



我在屏幕左侧有几个菜单项,每个菜单项都会在网站上打开一个新页面。在其中一个页面上,有一个对python的异步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]
});

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

在这里最好做什么?

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

var ajaxreq;

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

ajaxreq = $.ajax(...);

并中止页面上的ajax卸载:

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

最新更新