API:Cross-site requests/fr

Si un script utilisateur ou un gadget nécessite une API pour communiquer avec un autre site MediaWiki (par exemple un script sur Wikipédia qui a besoin de vérifier une information d'une image sur Commons), il faut utiliser JSONP ou CORS (en).

Utilisation de JSONP
L'API  accepte un paramètre de retour (callback) qui nomme une fonction JavaScript dans laquelle la sortie JSON sera empaquetée. Ça peut-être utilisé pour appeler l'API sur un site distant en ajoutant des balises dynamiquement au document.

Remarquons que toute requête JSONP sera traitée comme non identifiée, même si la session du navigateur l'est auprès du wiki distant.

Utilisation de CORS
Pour qu'une requête CORS soit autorisée par le wiki distant,  doit être renseigné correctement pour que site source soit accepté. L'API MediWiki demande aussi que la source soit fournie comme paramètre de requête, correctement nommée "origin", ce qui correspond à l'entête Origin demandée par le protocole CORS. Remarquons que cette entête doit être incluse dans chaque requête préparatoire et devrait donc être incluse dans la partie de chaîne de demande de la requête URI, même pour une requête de type POST.

Si la source du CORS est acceptée, MediaWiki inclura l'entête  dans la réponse, de manière à ce que le cookie d'authentification puisse être envoyé.

CORS est activé depuis septembre 2012 entre les wikis Wikimedia et depuis octobre 2013, les requête de préparation CORS (pre-flight requests) sont aussi supportées.

Se reporter à Manual: CORS pour les instructions sur comment manipuler les requêtes CORS en JavaScript.