拦截Jquery AJAX请求以插入其他变量?

有没有办法拦截通过jquery发出的ajax请求,以便在其中插入其他变量?

我知道.ajaxStart()允许你注册一个回调,它会在ajax请求开始时触发事件,但我正在寻找的是一种方法来取消ajax请求,如果它满足某些条件(例如url),插入更多将变量放入其内容,然后提交。

这是针对第三方软件的插件,其自身代码无法直接更改。

编辑:似乎.ajaxSetup()允许您设置一些与ajaxRequests相关的全局变量。 如果我注册了beforeSend函数,该函数是否能够取消请求以满足某些条件的不同?

弄清楚,这是我使用的代码:

 jQuery(document).ready(function() { var func = function(e, data) { //data.data is a string with &seperated values, eg a=b&c=d&.. . //Append additional variables to it and they'll be submitted with the request: data.data += "&id=3&d=f&z=y"; return true; }; jQuery.ajaxSetup( {beforeSend: func} ); jQuery.post('example.php', {a : 'b'}, 'json'); } ); 

要取消请求,从func返回false似乎有效。

有两种方法可以拦截ajax调用并在其中插入其他数据:javascript方法和jQuery方法:

javacript方法

 (function(send) { XMLHttpRequest.prototype.send = function(body) { var info="send data\r\n"+body; alert(info); send.call(this, body); }; 

jQuery方法

 $.ajaxSetup({ beforeSend: function (xhr,settings) { alert(settings.data); alert(settings.url); } });