使用Ajax jQuery表单插件时未设置“X-Requested-With:XMLHttpRequest”响应头

时间:2013-01-24 16:28:53

标签: javascript jquery ajax

  

可能重复:
  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”

Why ajaxSubmit does not send a correct ajax request with X-Requested-With=XMLHttpRequest request header”

我的表单确实有一个文件输入字段,但我在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 }

提前致谢。

0 个答案:

没有答案