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/error
wurden veraltet .
Das $http
Legacy - Versprechen Methoden success
und sind error
veraltet und wird in v1.6.0 entfernt werden. Verwenden Sie stattdessen die Standard-Then-Methode. Wenn auf $httpProvider.useLegacyPromiseExtensions
gesetzt ist, werden false
diese 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_CALLBACK
etwa so:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
Und dann sollte Ihre .success
Funktion 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);
});