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
L'API MediaWiki demande que la  soit fournie comme paramètre de requête de chaîne, correctement nommée « origin », ce qui correspond à l'entête Origin demandée par le protocole CORS. Remarquons que ce paramètre doit être inclus dans chaque requête préparatoire et devrait donc être inclus dans la partie de chaîne de demande de la requête URI, même pour une requête de type POST.

Pour faire une requête CORS authentifiée, l'option  du wiki distant doit être renseigné de façon à ce que le site source soit accepté. 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é.

Unauthenticated CORS requests may be made from any origin by setting the "origin" request parameter to "*". In this case MediaWiki will include the  header in the response and will process the request as if logged out (in case credentials are somehow sent anyway).

Quand le paramètre "origin" de la requête est fourni, MediaWiki (depuis la 1.30) renvoie un entête  avec un bref motif d'échec si la requête ne se termine pas par une réponse positive CORS, par exemple en cas d'origine discordante ou d'entêtes non supportés dans une requête d'entêtes.

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