更新:Angular 1.6以降
JSON_CALLBACK文字列を、コールバックパラメーター値の移動先を指定するためのプレースホルダーとして使用できなくなりました
ここで、次のようにコールバックを定義する必要があります。
$http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})
経由$http.defaults.jsonpCallbackParam
でパラメータを変更/アクセス/宣言、デフォルトはcallback
注:URLが信頼済み/ホワイトリストに追加されていることも確認する必要があります。
$sceDelegateProvider.resourceUrlWhitelist
または明示的に信頼されます:
$sce.trustAsResourceUrl(url)
success/error
された非推奨。
$http
レガシー約束法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);
});
以前の回答:Angular 1.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);
});