Je serais peut-être manquant quelque chose ici, mais je ne peux pas faire ce travail de demande JSONP, voici le code:
[{"id": "1", "name": "John Doe"}, {"id": "2", "name": "Lorem ipsum"}, {"id": "3", "name": "Lorem ipsum"}]
3 Réponses :
JSONP nécessite que vous enveloppez vos données dans un appel de fonction JavaScript. Donc, techniquement, vous retournez un fichier JavaScript et non un fichier JSON.
Les données renvoyées du serveur doivent être similaires à celles-ci: p>
Résolu! Merci. TheHippo Si vous pouviez modifier votre réponse pour inclure ce que @gloopy a commenté: "angular's $ http.jsonp convertit le paramètre requête QueryString à partir de rappel = json_callback à rappel = angular.callbacks._0", donc la réponse n'est pas exactement json_callback () mais angulaire .Callbacks._0 ([{"id": "1", "nom": "john doe"}, {"id": "2", "nom": "lorem ipsum"}]); S'il y a plus d'une demande, le second JSONP convert la requête requête callback = json_callback à angular.callbacks._1 et ainsi de suite, donc dans mon cas (Server PHP) J'utilise $ _GET ['rappel'] pour obtenir le bon rappel Nom.
@thehippo est correct les données ne doivent pas simplement être une réponse JSON simple. Voici un exemple de travail d'une demande JSONP contre un point final YouTube en angularjs. P>
Un couple de choses à noter dans cet exemple: p>
Callback = JSON_Callback < / Code> à Callback = angular.callbacks.0 code>. Li>
- Lorsque vous appelez le point final youtube je avais besoin de préciser au service que ce soit une demande JSONP en utilisant
alt = JSON-in script code> au lieu de alt = JSON code> le querystring. Cela a été trouvé dans leur documentation. LI>
- comparer les résultats de Cette URL à Celui-ci Pour voir la différence entre JSON et JSONP réponse de JSON et JSONP dans votre navigateur. < / li>
- Jetez un coup d'œil au panneau de réseau Chrome dans les outils de développement pour aider à comparer et à dépanner avec votre demande / réponse. LI>
ul>
Je sais que cet exemple est très spécifique mais nous espérons qu'il aide! P>
Merci thehippo! Commentaires très utiles.
@Gloopy - Informations utiles et exemple Jsfiddle très utile pour avoir débogué mon code, merci beaucoup.
Enfin une solution qui fonctionne! Courait dans ce problème en utilisant Smarthings juste pour déposer le mot-clé ici.
Malheureusement, le service YouTube utilisé pour cet exemple ne fonctionne plus. Stackoverflow.com/a/30685729/1014710 montre que cela peut être fait avec une clé API Google Developers.
Si les données de réponse sont "pures" JSON, nous pouvons simplement le gérer avec http.get $ http.get angulaire. se référer à l'exemple sur w3schools p> p>
Seulement si vous avez un ensemble de Cors
Cela n'a rien à voir avec JSONP du tout
Pouvez-vous poster un plumker?
quelle réponse voyez-vous dans violdler ou firebug
La réponse n'a pas l'air correcte, il devrait s'agir d'un appel de fonction à la fonction de rappel spécifiée par la demande.
@joakimbl est correct. Ce n'est pas JSON, c'est juste JSON. Votre réponse doit être un fichier JavaScript avec l'objet littéral renvoyé à l'intérieur d'une fonction nommée après le rappel que vous avez passé.