AKTUALIZACJA: od Angular 1.6
Nie możesz już używać ciągu JSON_CALLBACK jako symbolu zastępczego do określania, gdzie powinna znajdować się wartość parametru wywołania zwrotnego
Musisz teraz zdefiniować callback w następujący sposób:
$http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})
Zmień / uzyskaj / zadeklaruj parametr przez $http.defaults.jsonpCallbackParam
, domyślniecallback
Uwaga: musisz również upewnić się, że Twój adres URL został dodany do zaufanej / białej listy:
$sceDelegateProvider.resourceUrlWhitelist
lub jawnie zaufane przez:
$sce.trustAsResourceUrl(url)
success/error
zostały wycofane .
Te $http
metody obietnica starszych success
i error
były przestarzałe i zostaną usunięte w v1.6.0. Zamiast tego użyj metody standard then. Jeśli $httpProvider.useLegacyPromiseExtensions
jest ustawiona na, false
te metody będą generować $http/legacy error
.
POSŁUGIWAĆ SIĘ:
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);
});
Poprzednia odpowiedź: Angular 1.5.x i wcześniejsze
Wszystko, co powinieneś zrobić, to zmienić callback=jsonp_callback
się callback=JSON_CALLBACK
tak:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
A potem twoja .success
funkcja powinna uruchomić się tak, jak ją masz, jeśli powrót się powiódł.
Robiąc to w ten sposób, nie musisz brudzić globalnej przestrzeni. Jest to udokumentowane w dokumentacji AngularJS tutaj .
Zaktualizowano skrzypce Matta Ball'a, aby używały tej metody: http://jsfiddle.net/subhaze/a4Rc2/114/
Pełny przykład:
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);
});