Manual:Ajax/de

MediaWiki bietet eine veraltete Ajax-Oberfläche zur Nutzung durch Erweiterungen an. Ajax ist ein Begriff für die Nutzung von JavaScript, um bei Bedarf Teile einer Seite zu laden. MediaWiki 1.16 enthält, weshalb von der Nutzung von Ajax abgeraten wird.

Daher sollte JavaScript-Code stattdessen (oder das JavaScript-Modul mediawiki.api) nutzen. Eine MediaWiki-API-Abfrage würde über AJAX ausgeführt werden (statt ).

Asynchrone Abfragen
Eine asynchrone Abfrage sendet einige Daten an den Server und fährt mit der Ausführung fort. Etwas später kann der Server eine Antwort geben (abhängig vom Typ der Abfrage); In diesem Fall wird die Antwort zur Verarbeitung an eine JavaScript-Funktion übergeben. Es kann eine andere Funktion bereitgestellt werden, um mit dem Fall umzugehen, dass die Abfrage aus irgendeinem Grund scheitert. Unten findet sich ein Beispiel-Anruf an die Anmelde-API mit Übergabe des Benutzernamens und des Passwortes.

Alternativ kannst du die Funktionen von jQuery direkt nutzen:

Die Funktion "mw.util.wikiScript" ist ab 1.18 verfügbar.

Synchrone Abfragen
Die andere Art von Abfragen sendet einige Daten an die Server und wartet auf die Antwort. Dies bedeutet, dass das JavaScript geblockt wird, bis die Server Daten zurückgeben oder die Abfrage aus irgendeinem Grund scheitert. Das folgende Beispiel ruft die Liste "Links auf diese Seite" einer Vorlage ab:

( ist eine Standard-JavaScript-Funktion, die ein Objekt aus seiner Zeichenketten-Darstellung im JSON-Format ausgibt.)

Beschränkungen
Aufgrund der Same-Origin-Policy ist es für ein Skript einer externen Seite schwierig, Daten aus einem Wiki abzurufen, das sich unter einer anderen Domain befindet &mdash; zum Beispiel kann man nicht direkt Daten aus  in   abrufen. Neuere Browser unterstützen eine ausdrückliche Anweisung, um diesen Zugriff über Cross-Origin Resource Sharing zu erlauben, was jedoch nur funktioniert, wenn die Server so konfiguriert wurden, dass sie mit den entsprechenden Headern umgehen und der Nutzer einen aktuellen Browser verwendet, der diese erkennt. Entwickler, die sich Zweifel über Vorab-Versionen haben, können sich noch nicht auf CORS verlassen.

Es ist möglich, die Same-Origin-Policy zu umgehen, indem man JSONP statt reinem JSON nutzt, was in älteren Browsern funktionieren wird (darunter Internet Explorer 6).

Related deprecated functionality
Sajax is an ancient Ajax library that (as of September 2012) is still part of core code and is used by some extensions. Don't use it, use  instead. Some extensions, whether using Sajax or not, make Ajax calls through the obsolete AjaxDispatcher (see ) by invoking. They should instead make MediaWiki requests to API modules.

Siehe auch

 * - Extensions that use the Ajax interface of MediaWiki.

Weblinks

 * (JavaScript module)
 * jQuery.ajax (jQuery method)

General information on XMLHttpRequest:
 * XMLHttpRequest specification at W3.org
 * XMLHttpRequest on Wikipedia
 * XMLHttpRequest on MDN