3

私はフォームを持っています:

<form method="post" action="/balda/server.wsgi" id="gameboard" name="gameboard" >

送信ボタンで:

<input type="submit" name="submit" value="Поиск" style="" onmouseover="CheckElements();">

送信ボタンは ajax バインド プロセスを送信する必要があります。

jQuery(document).ready(function(){
    jQuery('#gameboard').submit( function() {
        $.ajax({
            url     : $(this).attr('action'),
            type    : $(this).attr('method'),
            dataType: 'json',
            data    : $(this).serialize(),
            success : function( data ) {
                       onAjaxSuccess( data );
                    }
        });
        return false;
    });
});

受け入れられた機能があります:

function onAjaxSuccess (result)

これはすべて、chrome、ff、opera、safari では問題なく動作しますが、Internet Explorer 9 では動作しません (他の人は試していません)。

IE9 では、結果変数は空です。次のような別のバインド送信ボタンを試しました。

$('document').ready(function( result )
{
    $('#gameboard').ajaxForm( {    
        type: "POST",
        data    : $(this).serialize(),
        success: onAjaxSuccess,
        dataType: 'json',
        error: function(){ alert ( 'Error loading data format.' ); }
    }); 
});

しかし、結果は IE9 を除いて同じ ff chrome safari オペラ作品です。

何が問題なのか教えてください。

4

2 に答える 2

4

問題は、IE9 がエンコーディング cp1251 の「JSON」の形式を理解していないことでした。これは、応答ヘッダーに明確に記載されています。JSON 応答を utf-8 に変換すると、IE9 の問題が解決されました。

于 2012-05-13T20:00:51.607 に答える
2

スクリプトのタイプの定義にスペースがある場合、type="text/javascript" にスペースがないことを確認してください。IE は js の動作を許可しません。

<script type="text/javascript">
  ....... 
</script>
于 2012-05-12T13:35:27.210 に答える