À l'aide de JSONP méthode pour $service http dans AngularJS
Je suis un parent débutant à AngularJS, et ayant utilisé la méthode GET de $http pour une base de preuve de concept de l'app, je vais maintenant essayer d'utiliser le JSONP méthode de tirer du JSON à partir d'une URL distante que j'ai été donné. J'ai créé une base de plunker ici pour montrer ce que je suis en train de faire: http://plnkr.co/edit/Joud0ukAzhgvNM0h9KjB?p=preview
Je suis à l'aide d'une requête HTTP à l'intérieur de mon contrôleur comme ceci:
$http({method: 'jsonp', url: 'http://ec2-54-229-49-250.eu-west-1.compute.amazonaws.com/country?callback=JSON_CALLBACK'}).
success(function(data) {
$scope.countries = data;
console.log('success');
}).
error(function(data) {
console.log('error');
});
...mais je reçois rien en retour (sauf "erreur" dans la console). Je sais que l'URL est de retour JSON valide ( http://ec2-54-229-49-250.eu-west-1.compute.amazonaws.com/country?callback=angular.callbacks._0 ), mais je suis tout simplement pas obtenir quelque chose en retour...
OriginalL'auteur ParkerDigital | 2013-06-12
Vous devez vous connecter pour publier un commentaire.
JSONP exige que vous enveloppez de votre réponse JSON dans un appel de fonction Javascript.
Lorsque vous faites un JSONP la demande de la chaîne de requête permettra de définir un paramètre appelé "rappel" pour dire à votre serveur de façon à envelopper la réponse JSON.
Donc la réponse doit être quelque chose comme:
Angulaire sera de définir la fonction de rappel paramètre angulaire.les rappels._0, angulaire.les rappels._1, angulaire.les rappels._2 ... en fonction du nombre de demandes, il est en attente pour la réponse, donc si vous faites une seule demande la réponse doit être:
Le serveur doit utiliser la fonction de rappel paramètre de la chaîne de demande de définir le temps de réponse en conséquence.
Vérifier votre Plunker de l' l'activité du réseau et vous verrez que la demande consiste à définir le paramètre de rappel, mais la réponse que vous obtenez n'est pas d'être enveloppé avec elle.
Est-il possible de faire cette non-enveloppé de réponse à l'intérieur de la js application?
Je ne crois pas, à mettre en œuvre les navigateurs de même la politique de l'origine et aussi loin que je JSONP est la seule façon de faire de la croix de domaine de demandes de.
OriginalL'auteur Bema