有没有办法拦截通过jquery发出的ajax请求,在其中插入其他变量?
我知道.ajaxStart()允许你注册一个回调,它会在ajax请求开始时触发事件,但我正在寻找的是一种方法来取消ajax请求,如果它满足某些条件(例如url) ,在其内容中插入更多变量,然后提交。
这是针对第三方软件的插件,其自身代码无法直接更改。
编辑:似乎.ajaxSetup()允许您设置一些与ajaxRequests相关的全局变量。如果我注册了beforeSend函数,该函数是否能够取消请求以满足某些条件的不同?
答案 0 :(得分:7)
想出来,这是我使用的代码:
jQuery(document).ready(function()
{
var func = function(e, data)
{
//data.data is a string with &seperated values, e.g 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似乎有效。
答案 1 :(得分:0)
有two methods to intercept ajax call并在其中插入其他数据: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);
}
});