|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() |
Bonjour. Je suis nouveau sur le forum, et j'ai besoin de comprendre une solution sur JSONP.
Si j'ai bien compris, Ajax fonctionne au sein d'un même domaine, et conçu pour interroger une page de données (xml, texte, json, etc.) Pour faire du cross domain avec Ajax, toutes les solutions que je croise sur le Net passe par le framework Jquery (dont je suis en phase d'apprentissage), ou via les codes Code :
Ce que je ne comprends pas, est pourquoi est ce si simple et sans Ajax ? Pourquoi la solution Ajax/JQuery fonctionne en cross domain ? Pourquoi Ajax si la solution avec <script src="url"> fonctionne ? Pardonnez ces incompréhensions, je cumule juste 9 mois de connaissance tous langages confondus. mctarek |
||
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Matilin TorreÉtudiant Inscription : juin 2010 Messages : 679 ![]() |
Salut,
je ne sais pas si ce que je vais dire va te faire avancer, mais allons-y. Habituellement, la balise <script> te permet d'exécuter du code d'un serveur tiers. C'est toi qui choisis l'URL du script, autrement dit tu « invites » le script sur ta page. Tu le fais car tu connais le contenu du script, et tu n'as pas à craindre que ce serveur t'attaque. À l'inverse, le serveur n'est pas tenu de te faire confiance. En effet, n'importe qui peut appeler ce script depuis n'importe où, et le serveur ne sait pas qui utilise son script. Pour cette raison, il t'est impossible de manipuler le code source du script : le navigateur l'exécute, mais aucun mécanisme ne te permet de le récupérer. Voilà en quoi consistent les restrictions de la balise <script>. JSONP signifie JSON with Padding. Padding peut se traduire par remplissage. Il s'agit d'un mécanisme de coopération entre le client et le serveur. Lorsque tu « invites » le script, tu précises en paramètre le nom d'une variable de tes propres scripts (en l'occurence fctRappel). Alors, le serveur génère son contenu JSON, en le faisant précéder du nom de ta variable suivi du signe égal : Code PHP :
Tout ça n'est possible que parce qu'il y a une entente entre le client et le serveur, et comme tu le vois, ça ne viole pas la sécurité du code source
__________________
Disposition de clavier ergonomique française : Bépo |
||
|
|
00
|
|
|
#3 | |||||
|
Nouveau Membre du Club
![]() |
Citation:
Dans mes recherches, je suis tombé sur : "Now the truth is, JSONP isn't AJAX at all technically speaking because it does not use XMLHttpRequest. JSONP requests are made by dynamically inserting a <script> tag into the DOM." Puis le même site enchaîne avec JsonP with JQuery Code :
Est ce que Jquery utilise la solution script derrière le mot Ajax ? Cdlt; mctarek |
|||||
|
00
|
|
|
#4 |
|
Membre Expert
![]() Matilin TorreÉtudiant Inscription : juin 2010 Messages : 679 ![]() |
Oui. Le but de jQuery est de « lisser » le comportement de tout ce qui ressemble de près ou de loin à de l'Ajax, afin de faciliter le travail du développeur.
D'après la doc officielle de jQuery ( http://api.jquery.com/jQuery.ajax/#jqXHR ), la technique JSONP est directement inspirée de cette page : http://bob.pythonmac.org/archives/20...te-json-jsonp/
__________________
Disposition de clavier ergonomique française : Bépo |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com