2016-04-25 46 views
-2

我有很多从许多js文件调用ajax请求。我想检测一些Ajax请求来中断执行并执行一个更新的请求。 我可以检测并停止与他们的网址ajax?获取或检测到一个ajax请求正在执行url

我会非常感谢任何帮助,我可以获得。

回答

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 

请注意,正如帖子所言,这会在客户端而不是服务器端杀死进程。

+0

谢谢你的回答。这是如果我有权访问ajax的声明。但是,如果我没有访问他的声明并且只有url,我该怎么做 – mister

+0

如果你没有权限访问ajax的声明(例如,你不能保存jqxhr的承诺),那么我不相信你可以停止Ajax通话。 –

+0

谢谢你的回答。这是非常有用的,但我必须中止一个由我的电脑调用的Ajax,我无法访问代码。 – mister