是否可以通过修改beforeSend回调中的XMLHttpRequest对象来修改Ajax请求中发送的数据?如果可以,我该怎么做?
是的,您可以对其进行修改, 实际上beforeSend是的签名(在jQuery 1.4+中): __
beforeSend
beforeSend(XMLHttpRequest, settings)
即使文档只是just beforeSend(XMLHttpRequest),您也可以在这里看到它的名称,ssettings对象在哪里:
beforeSend(XMLHttpRequest)
s
if ( s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false ) {
因此,您 可以 在此data之前修改参数(请注意 __,即使传入了一个对象, 到目前为止,该参数 已经 是字符串了)。修改它的示例如下所示:
data
$.ajax({ //options... beforeSend: function(xhr, s) { s.data += "&newProp=newValue"; } });
如果有帮助,则将相同的签名应用于.ajaxSend()全局处理程序( 确实 具有正确的文档显示该签名),如下所示:
.ajaxSend()
$(document).ajaxSend(function(xhr, s) { s.data += "&newProp=newValue"; });