JSONP : envoyer des requêtes cross-domains

Contourner la same-origin policy.

JSONP (JSON with Padding) est le nom d'une technique permettant de contourner les sécurités misent en place par la norme same-origin policy. Cette norme interdit entre autres d'utiliser l'objet XMLHttpRequest (et donc l'AJAX) pour envoyer une requête vers un autre domaine que le domaine courant.

JSONP est basé sur l'absence de respect de la same-origin policy de la part de la balise script. Le site A ne peut envoyer de requêtes en AJAX au site B, en revanche il peut directement inclure un script provenant de ce site.

Certains fournisseurs de web-services proposent donc de prendre en paramètre d'appel le nom d'une fonction de callback. Dans leur réponse, le résultat est encapsulé dans un appel de cette fonction de rappel.

Balise avec JSONP

<!-- This include : bar({"baz": 42}); --> <script src="http://foo?jsonp_callback=bar" />

Fonction de rappel

function bar(foo_response) { console.log(foo_response); }