jQuery:在IE $ .get请求中serialize()函数失败?

时间:2011-04-28 16:15:43

标签: javascript jquery ajax internet-explorer

刚遇到奇怪的事情。我有以下代码:

var SubmitHandler = function( target ){
// ..... code ...

   // target is an html form
   target = $( target );

   // .... code ....

       //send get request
       $.get( target.attr( "action" ), target.serialize()+"&AjaxRequest=true", function( data ){

            //add response html to page
            ReplaceElement.html( data );
       });

 // .... code ....

好的,所以我没有看到这个代码有任何明显的错误。基本上我只是使用表单“action”属性作为URL向服务器发送jQuery get请求,使用jQuery的serialize函数序列化表单,并在生成的查询字符串中附加内容。发送到服务器的查询字符串如下所示:

?SortBy=e.Name&SortOrder=ASC&AjaxContent=true

除IE之外,所有浏览器都能正常使用。在IE中,查询字符串如下所示:

?&AjaxContent=true

这几乎就像IE甚至没有运行target.serialize()功能。然而,如果我使用alert(target.serialize()),我会看到预期的结果。

这很奇怪,但我必须添加以下变量才能在IE中使用它:

var SubmitHandler = function( target ){

// ..... code ...

   // target is an html form
   target = $( target );

   // .... code ....

       var targetSerialized = target.serialize();

       //send get request
       $.get( target.attr( "action" ), targetSerialized+"&AjaxContent=true", function( data ){

            //add response html to page
            ReplaceElement.html( data );
       });

 // .... code ....

有谁知道为什么会发生这种情况?

(万一你想知道,我用更详细的$.ajax函数尝试了这个并得到了相同的结果)

0 个答案:

没有答案