Javascript 拒绝所有AJAX请求
我希望根据变量立即拒绝所有AJAX请求。我知道如何钩住XMLHttpRequest,但不知道如何拒绝它Javascript 拒绝所有AJAX请求,javascript,jquery,ajax,Javascript,Jquery,Ajax,我希望根据变量立即拒绝所有AJAX请求。我知道如何钩住XMLHttpRequest,但不知道如何拒绝它 (function(open) { XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { this.addEventListener("readystatechange", function() { if
(function(open) {
XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
this.addEventListener("readystatechange", function() {
if(this.readyState === 1){
// stop all ajax attempts if we're disconnected
if(!self.isConnected){
console.log('rejecting')
// reject here
this.abort(); // ???
}
}
}, false);
open.call(this, method, url, async, user, pass);
};
})(XMLHttpRequest.prototype.open);
我还想知道是否在
this.readyState===0
类似于调用它“当请求第一次启动时”您可以使用abort函数中止ajax请求,首先将请求保存在某个变量中并对其调用abort
$(document).ready(
var xhr;
var fn = function(){
if(xhr && xhr.readyState != 4){
xhr.abort();
}
xhr = $.ajax({
url: 'ajax/progress.ftl',
success: function(data) {
//do something
}
});
};
var interval = setInterval(fn, 500);
);
这里有另一种创建AJAX池设置的方法,我不推荐这种方法
您可以使用abort函数中止ajax请求,首先将请求保存在某个变量中,并对其调用abort
$(document).ready(
var xhr;
var fn = function(){
if(xhr && xhr.readyState != 4){
xhr.abort();
}
xhr = $.ajax({
url: 'ajax/progress.ftl',
success: function(data) {
//do something
}
});
};
var interval = setInterval(fn, 500);
);
这里有另一种创建AJAX池设置的方法,我不推荐这种方法
我只是加了一句
this.abort()
这似乎会在需要时立即中止所有请求。
this.abort()
这似乎会在需要时立即中止所有请求。我对所有请求都感兴趣requests@Tester232323:然后您需要将所有请求保留在某个数组中,然后您可以对它们调用abort。。。您需要维护一个请求变量是否没有访问浏览器自己的xhr队列的权限?@tester23223:实际上不是由浏览器提供的,其次这将忽略响应,它不会停止服务器上的执行看起来我实际上可以调用
this.abort()
我对所有这些都感兴趣requests@Tester232323:然后您需要将所有请求保留在某个数组中,然后您可以对它们调用abort。。。您需要维护一个请求变量是否没有访问浏览器自己的xhr队列的权限?@Tester23223:实际上不是由浏览器提供的,其次,这将忽略响应,根本不会停止服务器上的执行。看起来我实际上可以调用this.abort()