5

Internet Explorer9で配置されたjQueryajaxを使用すると、応答本文でデータを取得していますが、成功関数に渡されません。どうすればそれを機能させることができますか?

例:

...
    $.ajax({
        async : false,
        type: 'PUT',
        contentType: 'application/json',
        url: updateUrl,
        data: JSON.stringify(model),
        dataType: 'json',
        success: function(data) {
            console.log("Here!");//it comes here
            console.log(data);//it logs undefine at ie, firefox and etc is logging data
            r = resultResponse(data);
        },
        error: function(data) {
            try {
                r = error($.parseJSON(data.responseText));
            } catch (err) {
                //Handle error
            }
        }
    });
...

ネットワークをデバッグしたところ、応答の本文は次のとおりです。

{"message":"Connection is successful","status":"success"}

ただし、InternetExplorerの成功関数ではデータが定義されていません。

何か案は?

PS 1:応答ヘッダーのコンテンツタイプを設定せずにサーバーからデータを送信すると、それが機能するのは奇妙ですか?

PS 2:私の応答ヘッダーは次のとおりです。

Key Value
Response    HTTP/1.1 200 OK
Server  Apache-Coyote/1.1
Content-Type    application/json;charset=UTF8
Transfer-Encoding   chunked
Date    Thu, 02 Aug 2012 15:50:44 GMT
4

2 に答える 2

4

出力で見られるように、私の文字セットはUTF-8ではなくUTF8でした。問題はサーバー側の問題でした。

于 2012-08-02T11:48:58.927 に答える
0

$.ajaxこれは質問することが多いかもしれませんが、完全な呼び出しを?に置き換えてみることができます$.getJSONか?問題はajax呼び出し用に行った多数の設定と構成のいずれかにある可能性があるため、ブラウザーの実行ははるかに簡単で簡単になります。

できるだけシンプルにしてください。

$.getJSON(updateUrl, JSON.stringify(model), function(data){
    console.log(data);
});

getJSONを確認する必要がある場合は、こちらを確認してください

于 2012-08-02T10:02:59.207 に答える