如何使用jQuery和Javascript禁用页面中的所有AJAX请求?
我有一个页面,我想用jQuery禁用所有AJAX请求 你有什么想法吗?如果可能呢如何使用jQuery和Javascript禁用页面中的所有AJAX请求?,javascript,jquery,ajax,web,Javascript,Jquery,Ajax,Web,我有一个页面,我想用jQuery禁用所有AJAX请求 你有什么想法吗?如果可能呢 if (false) { //disable all ajax requests } 编辑:根据您的具体情况,有更好的方法,我不知道 试试:{测试它是否支持跨浏览器,我没有这么做} XMLHttpRequest.prototype.send = function(){}; 不仅针对在jQuery中完成的请求 如果要重新启用它,请执行以下操作: var oSend = XMLHttpRequest.proto
if (false) {
//disable all ajax requests
}
编辑:根据您的具体情况,有更好的方法,我不知道
试试:{测试它是否支持跨浏览器,我没有这么做}
XMLHttpRequest.prototype.send = function(){};
不仅针对在jQuery中完成的请求
如果要重新启用它,请执行以下操作:
var oSend = XMLHttpRequest.prototype.send; // keep reference
XMLHttpRequest.prototype.send = function(){};
然后打电话:
XMLHttpRequest.prototype.send = oSend; // get back reference to prototype method
如果所有ajax请求都是通过jQueryAjax方法(包括helper方法)发送的,那么可以使用beforeSend来完成
window.ajaxEnabled = true;
$.ajaxSetup({
beforeSend: function(){
return window.ajaxEnabled;
}
});
$.post("http://www.google.com"); // throws an error
window.ajaxEnabled = false;
$.post("http://www.google.com"); // doesn't throw an error
这里有一个将阻止所有的,不管哪个javascript库发送它,也基于一个全局标志。但不会影响XDomainRequest obj
(function (xhr) {
var nativeSend = xhr.prototype.send;
window.ajaxEnabled = true;
xhr.prototype.send = function () {
if (window.ajaxEnabled) {
nativeSend.apply(this, arguments);
}
};
}(window.XMLHttpRequest || window.ActiveXObject));
您为什么要这样做?您可以访问所有代码吗?使用主变量,如
禁用\u all\u ajax
,并在所有ajax调用中添加一个签入if(disable_all_ajax==true){alert('ITS DISABLED MUHAHA');}
setTimeout(function(){callback();},999999)代码>;p网站是缓存的,因此即使服务器停机,页面也可供用户使用,但ajax请求将导致网络错误。是的,我有权使用所有代码。开箱即用,很好。如何回答?我会在你的回答中加上它,或者我们会得到一个后续问题。我想OP不知道他在这里干什么。可能还有一些其他信息说明了为什么会这样。@nettux443此停止请求发送,因此不涉及成功/错误/完整回调