2

私はフロントエンドの開発者ではなく、JSON の一部を取得する AJAX を必要とするカジュアルなプロジェクトに取り組んでいます。

$('#btn1').click(function() {
    $.ajax({
        url: 'http://mywebsite.com/persons/mike',
        type: "get",
        success: function(response, textStatus, jqXHR){
            var age1 = JSON.parse(response).data.age; // works for Firefox
            var age2 = response.data.age; // works for Chrome
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log('Error')
        },
        complete: function(){
            console.log('Complete')
        }
    });
});

Firefox では Firebug を、Chrome では Developer Tools を使用しています。Chrome ではresponseis 型で、Firefox では a 型です。ObjectString

jQueryでAJAXを実行し、応答を正常に解析する一般的な方法はありますか?

4

1 に答える 1

7

に設定dataType: 'json'します$.ajax

これにより、success/doneハンドラー内の応答が既に解析済みのオブジェクトになります。そうでない場合、応答が有効な JSON でない場合、error/failハンドラーが呼び出されます。

注: を使用すると、応答でヘッダーをdataType指定しなくても、強制的に応答が JSON として解析されます。Content-Type: application/json

ただし、ヘッダーを指定すると、jQuery.ajaxの Intelligent Guess は、dataType.

そのため、バックエンドからdataType: 'json'in$.ajaxまたは output ヘッダーを使用することができ、正常に動作します。Content-Type: application/jsonまたは、ずっといたい場合は両方。=]

于 2013-02-15T02:32:08.403 に答える