API:Cross-site requests

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page API:Cross-site requests and the translation is 80% complete.

Outdated translations are marked like this.
Other languages:
Bahasa Melayu • ‎Deutsch • ‎English • ‎Nederlands • ‎català • ‎dansk • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎sicilianu • ‎русский • ‎հայերեն • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

Wenn ein Nutzerskript oder Gadget einen API-Aufruf gegen eine andere MediaWiki-Seite machen muss (wenn z.B. ein Skript auf der englischen Wikipedia Bildinformationen auf Commons prüfen muss), muss es JSONP oder CORS benutzen.

Benutzung von JSONP

Die API format=json nimmt einen „Callback“-Parameter an, der eine JavaScript-Funktion benennt, in das das JSON-Ergebnis eingebunden wird. Das kann man einsetzen, um die API auf einer entfernten Seite aufzurufen, indem man dynamische <script>-Tags zum Dokument hinzufügt.

Beachte dass alle JSONP-Anfragen nach dem Ausloggen verarbeitet werden, sogar wenn die Browsersitzung gegen das entfernte Wiki authentifiziert wurde.

Benutzung von CORS

Die MediaWiki-API erfordert, dass die Herkunft als Anfrageparameter angegeben wird, entsprechend "origin" genannt, der mit dem Herkunftsheader abgeglichen wird, der vom CORS-Protokoll benötigt wird.

Beachte dass dieser Parameter in allen vorherigen Anfragen eingebunden werden muss und auch in den Teil der Abfrage-Strings der anfragenden URI, sogar bei POST-Anfragen.

Um eine authentifizierte CORS-Anfrage durchzuführen, muss $wgCrossSiteAJAXdomains des entfernten Wikis so eingestellt sein, dass es die Herkunftsseite erlaubt. Falls die CORS-Herkunftsübeprüfung durchläuft, wird MediaWiki den Access-Control-Allow-Credentials: true-Header in die Antwort einbinden, sodass Authentifizierungs-Cookies gesendet werden können.

Unauthenticated CORS requests may be made from any origin by setting the "origin" request parameter to "*". In this case MediaWiki will include the Access-Control-Allow-Credentials: false 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 MediaWiki-CORS-Rejection 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 Access-Control-Request-Headers request header.

Siehe Manual: CORS für Anleitungen wie CORS-Abfragen in JavaScript gehandhabt werden.

Siehe auch