Comment puis-je configurer JSONP?
Que dois-je sur le côté serveur pour permettre à quelqu'un pour obtenir des données à partir de ce serveur à l'aide de JSONP. Et de quoi ai-je besoin de le faire du côté de l'utilisateur? Je veux utiliser JSONP comme une alternative à un XMLHttpRequest.
Il ne fonctionne pas de mon extension de Firefox, en raison de la même origine. Donc, les gens recommandé JSON, mais je suis assez perdu après avoir cherché des tutoriels et des guides sur internet.
Merci pour l'aide!
OriginalL'auteur Jacques Blom | 2012-03-01
Vous devez vous connecter pour publier un commentaire.
En supposant que votre serveur est en cours d'exécution de PHP, vous avez juste besoin d'ajouter 'callback' OBTENIR la demande.
Et côté client (à l'aide de jQuery):
Le code PHP ci-dessus est juste pour la démo, n'oubliez pas de aseptiser $_GET['callback']
Cela dit, si votre question vient de la même origine, vous aurez probablement juste besoin de permettre à la croix-origine côté serveur, et tout devrait fonctionner.
Juste downvoted bc cette réponse suppose php, et donc je préfère T. J. Crowder la réponse ci-dessous.
si vous lisez au-delà du titre, OP problème est en fait de la SCRO, indépendamment de la langue. Alors que les TJ réponse est plus générique (OMI php est suffisamment générique), il ne résout pas OPs problème.
OriginalL'auteur
Sur le côté serveur, tout ce que vous avez à mettre en place est une ressource web (par exemple, page) qui accepte un
GET
demande et renvoie les données à l'aide du JSON-P de la convention, qui est:...d'où le nom de la fonction ("callback" dans cet exemple) est généralement prises à partir de l'un des paramètres de chaîne de requête (par convention, le paramètre "callback"), et les données sont JSON texte (même si techniquement il pourrait être quelque chose qui est valable dans un objet JavaScript litéralement, la convention avec JSON-P est de vous limiter à ce qui est valable en JSON). Ainsi, par exemple, disons que la demande ressemblait à ceci:
Qui appelle la page
foo.php
(n'a pas à être du PHP, peut être tout dynamique côté serveur system) en lui disant que la fonction que nous voulons qu'il appel "bar". Notre réponse serait:Sur le côté client, vous devez ajouter un
script
élément de la page dynamiquement, et aussi d'ajouter la fonction de callback qui sera déclenchée par le JSON-P réponse. Habituellement, vous voulez donner à cette fonction un nom aléatoire, et à le supprimer lorsque vous avez terminé.Voici un exemple complet comme une réponse à une autre question, ici, sur un Débordement de Pile. Vous avez peut-être adapter un peu le tout pour une utilisation dans un add-on Firefox, mais les concepts sont les mêmes.
OriginalL'auteur
jsonp est json avec un wrapper, de sorte que vous pouvez faux requêtes ajax vers un autre serveur par l'insertion dynamique nouvelle
<script>
balises, avec la src de pointage à l'autre serveur. Le wrapper en fait essentiellement le jsonp retour stuff être valide d'un appel de fonction javascript qui peuvent être exécutées à l'extrait standard des données json à l'intérieur.En général, dans une insécurité 'juste pour la démo de la version, vous auriez quelque chose comme ceci:
Le serveur distant doit retourner la suite du texte littéral:
Noter que c'est littéral Javascript en clair le code qui est exécuté et "déballe" l'embedded chaîne JSON retour à un javascript natif structure de données.
Plus JSONP services de permettre la spécification d'un paramètre supplémentaire via la chaîne de requête de nom de la fonction de gestionnaire vous souhaitez envelopper la réponse, par exemple
OriginalL'auteur