何使用jQuery和Javascript禁用页面中的所有AJAX

何使用jQuery和Javascript禁用页面中的所有AJAX

本文介绍了如何使用jQuery和Javascript禁用页面中的所有AJAX请求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a page and I would like to disable all AJAX requests with jQuery.

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

Do you have any ideas? And if it is possible?

if (false) {
  //disable all ajax requests
}


推荐答案

如果你的所有ajax请求都是通过jQuery ajax方法发送的(包括帮助方法) ),你可以用beforeSend做到这一点。

If all of your ajax requests are being sent through jQuery ajax methods (including helper methods), you can do this with 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虽然

And here's one that will block all, regardless of what javascript library is sending it, also based on a global flag. Doesn't affect XDomainRequest obj though

(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));

这篇关于如何使用jQuery和Javascript禁用页面中的所有AJAX请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 21:02