次のような ajax 呼び出しが与えられた場合:
$.ajax(
{
url:"MyWebService.blah",
data: {"data":"awesome"},
success : function(responseText)
{
var myJsonObj = $.parseJSON(responseText);
//do stuff with myJsonObj
}
});
これはうまくいきました。今日、jQuery を 1.9 に更新しました (私はしばらくの間 1.6 を使用していました) 突然、さまざまなトグル機能をサポートしていない (eventLayer.X に関する何かがサポートされなくなりました) Safari の可能な修正として、すべての ajax 呼び出しがスローされています。次の JavaScript エラー:
Uncaught Syntax Error: Unexpected token o
少し調べてテストした結果、上記のコードの「responseText」が文字列ではなく JSON オブジェクトになっていることがわかりました。したがって、エラーは理にかなっていますが、私はこれに頭を悩ませようとしています。jQuery は本当にデフォルトの戻り値の型を変更したのでしょうか? ドキュメントを確認しました:
http://api.jquery.com/jQuery.ajax/
dataType はデフォルトで "Intelligent Guess" に設定されています。それがいかに便利かはわかりますが、私もそれが好きではありません。
だからここに私の質問があります:
- これは jQuery の新しい (っぽい) 変更ですか?
- これを行ったのはバージョン 1.9 でしたか、それとも以前はこのようで、私は 1.6 を使用していた化石ですか?
- これを処理するためのいくつかの提案と、私のコードを「将来的に保証する」ものは何ですか?
これは、多くのコードに影響を与える非常に基本的な変更です。コードを調べて、返されたデータを JSON に解析するインスタンスをすべて削除しますが、この全体は少し不安です。dataType を指定しなかったのは間違いでしたか? デフォルトに依存するのではなく、dataType を適用することをお勧めします。これについては私だけですか、それとも jQuery 側での変更は少しおこがましいものでしたか?