古いバージョンの IE のみに影響するように見える $.getJSON 呼び出しで奇妙な問題が発生しました。コードは次のとおりです。
var success = function (response) {
// do stuff
}
$.getJSON(url, success);
Chrome、Firefox、IE10 では、このコードは問題なく動作します。getJSON は URL (有効であり、クロス ドメインではありません) にヒットし、200 OK を返し、データを返します。これは、期待どおりに成功関数に渡されます。 .
ただし、IE9 以下では、成功のコールバックが呼び出されますが、渡される応答パラメーターは未定義です。IE Dev Tools でネットワーク トラフィックをキャプチャすると、呼び出しが URL にヒットし、200 OK が返され、応答本文で有効な JSON が返されることがわかります。では、成功のコールバックにヒットしたときに、これが未定義として出力されるのはなぜですか?
代わりに適切なパラメーターを使用して $.ajax 呼び出しを使用してみましたが、同じ動作が見られます。以下のコード:
$.ajax({
dataType: "json",
url: url,
success: success
};
jQuery 1.7.2 を使用しています (このページにあるライブラリの 1 つは、新しいバージョンの jQuery では壊れているため、古いバージョンです)。
編集: jQuery 1.10.1 を使用するようにページを更新しようとしましたが、問題は解決しません。
編集 2:返される JSON データが jsonlint.com 経由で有効であることを確認したので、それも問題ではありません。