更新:Angular1.6以降
JSON_CALLBACK文字列を、コールバックパラメータ値の移動先を指定するためのプレースホルダーとして使用できなくなりました
ここで、コールバックを次のように定義する必要があります。
$http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})
経由でパラメータを変更/アクセス/宣言します$http.defaults.jsonpCallbackParam
。デフォルトはcallback
注:URLが信頼できる/ホワイトリストに追加されていることも確認する必要があります。
$sceDelegateProvider.resourceUrlWhitelist
または、以下を介して明示的に信頼されます。
$sce.trustAsResourceUrl(url)
success/error
非推奨になりました。
従来の$http
promiseメソッドは非推奨にsuccess
なりerror
、v1.6.0で削除される予定です。代わりに、標準のthenメソッドを使用してください。$httpProvider.useLegacyPromiseExtensions
に設定されている場合false
、これらのメソッドはをスローし$http/legacy error
ます。
使用する:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts"
var trustedUrl = $sce.trustAsResourceUrl(url);
$http.jsonp(trustedUrl, {jsonpCallbackParam: 'callback'})
.then(function(data){
console.log(data.found);
});
前の回答:Angular1.5.x以前
あなたがしなければならないのはそうcallback=jsonp_callback
するcallback=JSON_CALLBACK
ように変えることだけです:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
そして.success
、戻りが成功した場合、関数はあなたが持っているように起動するはずです。
このようにすることで、グローバルスペースを汚す必要がなくなります。これは、AngularJSのドキュメントに記載されています。
この方法を使用するようにマットボールのフィドルを更新しました:http://jsfiddle.net/subhaze/a4Rc2/114/
完全な例:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
$http.jsonp(url)
.success(function(data){
console.log(data.found);
});