MISE À JOUR: depuis Angular 1.6
Vous ne pouvez plus utiliser la chaîne JSON_CALLBACK comme espace réservé pour spécifier où la valeur du paramètre de rappel doit aller
Vous devez maintenant définir le rappel comme ceci:
$http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})
Changer / accéder / déclarer le paramètre via $http.defaults.jsonpCallbackParam
, la valeur par défaut estcallback
Remarque: vous devez également vous assurer que votre URL est ajoutée à la liste approuvée / blanche:
$sceDelegateProvider.resourceUrlWhitelist
ou explicitement approuvé via:
$sce.trustAsResourceUrl(url)
success/error
étaient obsolètes .
Les $http
méthodes de promesse existantes success
et error
ont été désapprouvés et seront supprimés dans v1.6.0. Utilisez plutôt la méthode standard alors. Si $httpProvider.useLegacyPromiseExtensions
est défini sur false
alors ces méthodes lanceront $http/legacy error
.
UTILISATION:
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);
});
Réponse précédente: Angular 1.5.x et avant
Tout ce que vous devriez faire est de changer callback=jsonp_callback
pour callback=JSON_CALLBACK
ainsi:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
Et puis votre .success
fonction devrait se déclencher comme vous l'avez si le retour a réussi.
Cela vous évite d'avoir à salir l'espace mondial. Ceci est documenté dans la documentation AngularJS ici .
Mise à jour du violon de Matt Ball pour utiliser cette méthode: http://jsfiddle.net/subhaze/a4Rc2/114/
Exemple complet:
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);
});