UPDATE: seit Angular 1.6
Sie können die Zeichenfolge JSON_CALLBACK nicht mehr als Platzhalter verwenden, um anzugeben, wohin der Wert des Rückrufparameters gehen soll
Sie müssen den Rückruf nun wie folgt definieren:
$http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})
Parameter ändern / zugreifen / deklarieren über $http.defaults.jsonpCallbackParam, standardmäßigcallback
Hinweis: Sie müssen auch sicherstellen, dass Ihre URL zur vertrauenswürdigen / Whitelist hinzugefügt wird:
$sceDelegateProvider.resourceUrlWhitelist
oder explizit vertrauenswürdig über:
$sce.trustAsResourceUrl(url)
success/errorwurden veraltet .
Das $http Legacy - Versprechen Methoden successund sind errorveraltet und wird in v1.6.0 entfernt werden. Verwenden Sie stattdessen die Standard-Then-Methode. Wenn auf $httpProvider.useLegacyPromiseExtensionsgesetzt ist, werden falsediese Methoden ausgelöst $http/legacy error.
VERWENDEN:
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);
});
Vorherige Antwort: Angular 1.5.x und früher
Alles was Sie tun müssen, ist sich zu ändern callback=jsonp_callback zu callback=JSON_CALLBACKetwa so:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
Und dann sollte Ihre .successFunktion so ausgelöst werden, wie Sie sie haben, wenn die Rückgabe erfolgreich war.
Wenn Sie dies auf diese Weise tun, müssen Sie den globalen Raum nicht verschmutzen. Dies ist in der AngularJS-Dokumentation dokumentiert hier .
Die Geige von Matt Ball wurde aktualisiert, um diese Methode zu verwenden: http://jsfiddle.net/subhaze/a4Rc2/114/
Vollständiges Beispiel:
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);
});