0

これは私が最近見つけたものです.JSには次のコードがあります:

$.ajax({
    type: 'POST',
    url: '/requestHandle',
    data: data,
    success: function(data) {
        var places = JSON.parse(data);
        // do something
    },
    error: function(data) {
        // do something else
    }
});

バックエンドから返されたデータは確かに JSON 形式であり、var places = JSON.parse(data);この行は Chrome と Firefox で完全に機能し、JSON データを JS リストに解析します。var places = JSON.parse(data);ただし、データはすでに JS リストであるため、Safari ではエラーが発生します。var places = JSON.parse(data) を実行する代わりに、 var places = data に変更するだけでエラーが解決しましたが、なぜ自動的に変換されるのでしょうか?

前もって感謝します

4

1 に答える 1

2

あなたの最善の解決策は、応答がjsonであることをjQueryに伝えて、常にjsオブジェクトとして受け取るようにすることです

$.ajax({
    type: 'POST',
    url: '/requestHandle',
    data: data,
    success: function(obj) {

        // do something
    },
    error: function(data) {
        // do something else
    },
    dataType: 'json'  // reponse is json so it will always be pre-parsed 
});
于 2013-08-16T01:52:26.593 に答える