如何使用jQuery和Javascript禁用页面中的所有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

我有一个页面,我想用jQuery禁用所有AJAX请求

你有什么想法吗?如果可能呢

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此停止请求发送,因此不涉及成功/错误/完整回调