小编典典

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

ajax

我正在使用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调用会设置标头…

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


阅读 388

收藏
2020-07-26

共1个答案

小编典典

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

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

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

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

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

<input type="hidden" name="X_REQUESTED_WITH" value="XMLHttpRequest" />
2020-07-26