AJAX - SOP - JSONP

Restriction SOP

Le besoin

Après avoir vu les requêtes en local, il serait interessant de pouvoir requêter sur des serveurs / API distants tel que Google, Yahoo, Facebook...
C'est donc un réel besoin de pouvoir utiliser AJAX comme WebService.

Le problème : SOP

SOP : Same Origin Policy

Cet acronyme définit un concept de sécurité mis en place pour un grand nombre de langages côté client, comme le JavaScript. Il est apparut à partir de Nestscape 2.0, avec la règle suivante : "l'intégrité d'un document d'un domaine A ne peut être modifiée par un document d'un domaine B".
Puis, la politique s'est étendue aux autres navigateurs (IE, Firefox, Opera) et langages des scripts (Adobe Flash, ...)

Cette politique impose donc une restriction sur l'origine des scripts requêtés :

Voici un exemple de détermination de l'origine, valide ou non :

SOP
Exemple des contraintes de SOP sur l'origine

Cette sécurité contraint donc le développeur à ne requêter en AJAX que sur des scripts présents sur le même domaine ; sinon, l'utilisateur obtient ce type de message d'erreur :

SOP sous Firefox
Exemple de restriction SOP sous Firefox