-2
我有很多从许多js文件调用ajax请求。我想检测一些Ajax请求来中断执行并执行一个更新的请求。 我可以检测并停止与他们的网址ajax?获取或检测到一个ajax请求正在执行url
我会非常感谢任何帮助,我可以获得。
我有很多从许多js文件调用ajax请求。我想检测一些Ajax请求来中断执行并执行一个更新的请求。 我可以检测并停止与他们的网址ajax?获取或检测到一个ajax请求正在执行url
我会非常感谢任何帮助,我可以获得。
这里是代码改编自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
请注意,正如帖子所言,这会在客户端而不是服务器端杀死进程。
谢谢你的回答。这是如果我有权访问ajax的声明。但是,如果我没有访问他的声明并且只有url,我该怎么做 – mister
如果你没有权限访问ajax的声明(例如,你不能保存jqxhr的承诺),那么我不相信你可以停止Ajax通话。 –
谢谢你的回答。这是非常有用的,但我必须中止一个由我的电脑调用的Ajax,我无法访问代码。 – mister