获取或检测ajax请求正在由url执行

时间:2016-04-25 13:42:40

标签: javascript jquery ajax

我有很多来自很多js文件的调用ajax请求。我想检测几个ajax请求来中断执行并执行一个更新的请求。 我能用他们的网址检测并停止ajax吗?

我非常感谢我能获得的任何帮助。

1 个答案:

答案 0 :(得分:1)

以下代码改编自this post。它未经测试,但应该提出这个想法。它将xhr调用与URL一起填充到一个数组中,然后根据URL将它们调回来杀死它们。

var url = "some.php",
   xhr_global = [];

var jqxhr = $.ajax({
    type: "POST",
    url: url,
    data: "name=John&location=Boston",
    success: function(msg){
       alert( "Data Saved: " + msg );
    }
});

xhr_global.push({xhr: jqxhr, url: url});

function kill_url(url_pick){

    for(var i=0; i<xhr_global.length; i++){
        if (xhr_global[i].url == url_pick)     // If url matches, kill xhr
            xhr_global[i].xhr.abort();
    }

}

kill_url("some.php");     // Call function to kill the xhrs

请注意,正如帖子所说,这会破坏客户端的进程,但不会破坏服务器端的进程。