我正在使用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" />