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 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.

Pour qu'une requête CORS soit autorisée par le wiki distant,  doit être renseigné correctement pour que 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).

When the "origin" request parameter is supplied, MediaWiki (since 1.30) will return a  header with a brief failure reason if the request does not result in a successful CORS response, e.g. in case of mismatched origin or unsupported headers in a   request header.

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