MIME タイプを制御できない場合は、jQuery.ajax
代わりにjQuery.getJSON
. 次に、成功のコールバックで、次のようなことができます。
jQuery.ajax({
dataType: "text", //you may need this.
success: function(data, textStatus, jqXHR) {
var jsonData = JSON.parse(data);
....
}
});
あなたが試すことができる別のことは次のとおりです。
jQuery.ajax({
dataType: "json",
success: function(data, textStatus, jqXHR) {
//data here will be a JavaScript object
....
}
});
MIME タイプが一致しない場合に jQuery が文句を言うかどうかはわかりませんが。しかし、それは一撃の価値があります。
編集:別のメモとして、スクリプトからそのデータにどのようにアクセスできますか? これはパブリック API ですが、別のサーバー上にあるため、同一生成元ポリシーに違反します。私が次のことをするとき:
jQuery.getJSON("http://bitcoincharts.com/t/weighted_prices.json", function(data) {
console.log(data);
});
Chrome コンソールに次のエラーが表示されます。
XMLHttpRequest cannot load http://bitcoincharts.com/t/weighted_prices.json?_=1346263039525. Origin http://stackoverflow.com is not allowed by Access-Control-Allow-Origin.
BitCoin Charts が JSONP の代替をサポートしているかどうかを確認する必要があります。それ以外の場合、唯一のオプションは、サーバー側でこのデータを取得し、正しい MIME タイプを使用して JSON で返す何かをセットアップすることです。