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

jQuery ajaxForm插件中未设置X-Requested-With标头

申屠黎昕
2023-03-14
问题内容

我正在使用jQuery ajaxForms插件使ajax提交到我的CakePHP应用。

Cake的RequestHandler通过查看“ X-Requested-
With”标头来检测ajax请求,但forms插件似乎并未对其进行设置。或jQuery在使用插件时未设置它。

我已经尝试了几件事,

在主要的onload函数中,我添加了:

$.ajaxSetup({
    headers: {"X-Requested-With":"XMLHttpRequest"}
});

在插件代码中,我在实际的ajax调用之前添加了此代码:

options.beforeSend = function(xhr) {
    xhr.setRequestHeader("X_REQUESTED_WITH", "XMLHttpRequest");
};

进行常规的ajax调用会设置标头…

谁能告诉我发生了什么或最重要的是,我该如何解决?


问题答案:

@Nicky De Maeyer对自己问题的回答

实际上,您不需要自己执行此操作(附加一个隐藏的输入字段)。

AFAIK,您可以将此类数据传递给options对象中的ajaxForms插件

$('#myForm1').ajaxForm({data:{"X_REQUESTED_WITH":"XMLHttpRequest"}});

应该自动(在隐藏的iframe文件上传情况下)在提交时将此类输入附加到您的表单中

<input type="hidden" name="X_REQUESTED_WITH" value="XMLHttpRequest" />


 类似资料:
  • 问题内容: 我正在使用angular 1.1.5,并且正在使用$ resource将XHR制作为REST服务,但似乎$ resource并未将标头附加为X- Requested-With和XMLHttpRequest, 是正常行为? 和我是否需要手动附加标题? 问题答案: 只需将其添加到您的应用中

  • 问题内容: 在 **http://www.a.com/service.asmx 上创建一个Web服务,并从 **http://www.b.com 向其发送跨域ajax请求。检查 Firebug 或 Live HTTP Headers中的标题 ,或您想要的任何其他插件。 在请求标头中没有 X-Requested-With HTTP标头字段的踪迹。 但是,如果您从同一域向同一服务发送ajax请求(例如

  • 问题内容: jQuery和其他框架添加以下标头: X-Requested-With:XMLHttpRequest 为什么需要这个?为什么服务器要对AJAX请求与常规请求区别对待? 更新 :我刚刚找到了一个使用此标头的真实示例:https : //core.spreedly.com/manual/payment-methods/adding- with-js 。如果要求付款处理器不使用AJAX,则完

  • 问题内容: 我想知道是否有人尝试从jquery(或普通JS)发出的ajax请求中删除“ X-Requested-With”标头。可能吗? 第二部分:您是否知道Grease Monkey的ajax请求是否设置了此标头? 谢谢 标头看起来像这样: 问题答案: “第二部分:您是否知道Grease Monkey的ajax请求是否设置了此标头?” 不,Greasemonkey不会设置此标头(尽管您当然可以添

  • 问题内容: 我有一个ajax调用,其中我使用jQuery.ajax()向mvc操作发出请求。这一切都很好。但是由于某些形式具有文件控制,我将其从使用jQuery.ajax()更改为使用XMLHttpRequest通过HTML5 File API发送。 由于进行了此更改,因此MVC操作方法不再将其视为ajax请求。使用Fiddler2,我注意到它不再向请求添加“ X-Requested- With:

  • 问题内容: 我正在开发DJANGO + AngularJS应用程序,其中django不提供角度部分。 我将角度设置如下: 然后,在执行任何POST之前,我执行GET以设置cookie。我可以通过Chrome确认已设置Cookie: (在Chrome开发者工具的resources / cookies / localhost中可见) 但是,当我执行POST时,没有设置标头 这是Chrome记录的POS