我有一个页面,我想用jQuery禁用所有AJAX请求。
你有什么想法吗?如果可能的话?
if (false) {
//disable all ajax requests
}
答案 0 :(得分:5)
编辑: 有更好的方法,具体情况取决于您不了解的具体情况
尝试:{测试它是否支持跨浏览器支持,我没有做过}
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
答案 1 :(得分:5)
如果你的所有ajax请求都是通过jQuery ajax方法(包括帮助方法)发送的,你可以使用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));