当前位置: 首页 > 面试题库 >

是否可以通过beforeSend回调修改XMLHttpRequest数据?

岳卓君
2023-03-14
问题内容

是否可以通过修改beforeSend回调中的XMLHttpRequest对象来修改Ajax请求中发送的数据?如果可以,我该怎么做?


问题答案:

是的,您可以对其进行修改,
实际上beforeSend是的签名(在jQuery 1.4+中): __

beforeSend(XMLHttpRequest, settings)

即使文档只是just
beforeSend(XMLHttpRequest),您也可以在这里看到它的名称,ssettings对象在哪里:

if ( s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false ) {

因此,您 可以 在此data之前修改参数(请注意
__
,即使传入了一个对象,
到目前为止,该参数
已经
是字符串了)。修改它的示例如下所示:

$.ajax({
  //options...
  beforeSend: function(xhr, s) {
    s.data += "&newProp=newValue";
  }
});

如果有帮助,则将相同的签名应用于.ajaxSend()全局处理程序( 确实
具有正确的文档显示该签名),如下所示:

$(document).ajaxSend(function(xhr, s) {
  s.data += "&newProp=newValue";
});


 类似资料:
  • 问题内容: 假设我有一个来自jQuery的Ajax调用,如下所示: 我希望能够使用添加到myData 结果应该是所有ajax调用(发布和获取)都被修改,所以如果我得到一个额外的参数IsAjax = true 问题答案: 这篇博客文章解释了如何使用添加数据。累积起来 就像这样:

  • 问题内容: 我已经编写了一个JavaScript函数,该函数使用XmlHttpRequest异步调用Web服务。我被要求使此功能在呈现页面之前完成其工作。 我以为我可以使AJAX请求同步,但是我不希望这使页面挂起太长-如果没有收到响应,我想在1秒后中止请求。 是否可以中止同步的XmlHttpRequest? 问题答案: 您不能: http://www.hunlock.com/blogs/Snipp

  • 我是个新手,学习面向对象的Java。我有一个关于通过调用方法为多个数组添加元素的问题。我只是试图避免多次创建循环,对于多个数组,我想创建一个方法,它将包含必要的循环来添加元素(甚至将它们显示为输出),这样我就可以在需要的时候调用它。希望你明白我想说的话。请原谅我的英语不好。

  • 我计划开发一个基于web的聊天应用程序,它接收ReSTful请求,将它们转换为XMPP,并将它们发送到XMPP服务器。 在这种基于聊天的应用程序中使用WebSocket看起来很有希望,因为事件(或响应)可以异步传递。但是,如果我使用WebSocket作为从浏览器传输请求的底层协议,这仍然可以被视为ReSTful设计吗?如果是的话,URI、动词(GET、POST…)是怎样的,websocket消息中

  • 问题内容: TensorFlow图通常从输入到输出逐渐构建,然后执行。查看Python代码,操作的输入列表是不可变的,这表明不应修改输入。这是否意味着无法更新/修改现有图形? 问题答案: TensorFlow类是 仅追加的 数据结构,这意味着您可以在执行图的一部分后将节点添加到图,但不能删除或修改现有节点。由于TensorFlow在您调用时仅执行必要的子图,因此图中没有冗余节点(尽管它们将继续消耗