可能重复:
X-Requested-With header not set in jquery ajaxForm plugin
我有一个主要使用xQuery编写的Web应用程序,它使用Malsups Ajax form plugin通过Ajax调用提交webform。在我的xQuery中,我发送一个json对象作为服务器响应,并在我的post-submit回调函数中分析该对象的属性。
我的应用在Chrome,Firefox甚至IE10中成功运行,但在IE9中则无法运行。在IE9中,Ajax表单插件在接收服务器响应时失败,我的提交后功能根本不会触发。我的所有浏览器返回的是一个包含服务器响应的文件:原始JSON对象。
我注意到在Fiddler中调试时我错过了一个标题:X-Requested-With:XMLHttpRequest。我一直试图通过引用以下相关问题手动添加此标题,但没有运气:
X-Requested-With header not set in jquery ajaxForm plugin
XMLHttpRequest not adding header - “X-Requested-With: XMLHttpRequest”
我的表单确实有一个文件输入字段,但我在SO帖子上看到,Malsup已经在他的插件中修补了它,并且支持multipart / form-data表单。我还阅读了一些帖子,说IE9的activeX设置可能会搞乱。
这个丢失的标题是我问题的根源吗?如果是这样,有没有快速的方法来添加它?
代码示例:
$(document).ready(function() {
var options = {
success: showResponse //post-submit callback
}
$('submitFormbutton').click(function(){
$().modal() //create popup dialog window on form submit
});
}
// ajaxForm plugin, prepares the form and invokes ajaxSubmit at the right moment
$("myForm").ajaxForm(options);
function showResponse(responseText, statusText, xhr, $form) { // post-submit callback
// parsing JSON object here which is in responseText
if ($(responseText).property == "blahblah") {
do something here
}
else { do something else here }
提前致谢。