JSONとJSONPはまったく別のものです。あなたはJSONを求めていますが、JSONPを求めていることをjQueryに伝えています。だからうまくいかない。
あなたがそうするように指示すれば、JSONPをサポートします。と を使用する必要がformat=jsonPありprefix=the_name_of_your_callbackます。jQuery でコールバック名を制御したいので、API が(標準の ではなく)jsonp非標準の引数を使用していることを引数で伝える必要があります。prefixcallback
$.ajax({
url: 'http://api.worldbank.org/countries/indicators/3.1_LOW.SEC.NEW.TEACHERS?per_page=50&date=1960:2013&format=jsonP',
jsonp: 'prefix',
dataType: 'jsonp',
success: function(data) {
console.log(data);
},
error: function(e) {
console.log(e.message);
}
});
実施例| ソース
上記に関する注意事項:
- 削除され
type: "GET"ました。JSONP は常に GET.
- URL の に変更
format=jsonされました。format=jsonP
- 削除され
jsonpCallback: 'jsonpCallback'ました。この引数は、コールバック関数に特定の名前を使用するよう jQuery に指示しますが、これは望ましくありません。
jsonp: 'prefix'コールバック関数の名前のクエリ文字列で使用する引数を jQuery に指示する が追加されました。その API ドキュメントprefixは、より標準的な の代わりに使用しますcallback。
- 削除され
contentType: "application/json"ました。JSON を送信しているのではなく、JSON を受信することを期待しています。