Manual:Ajax/fr

MediaWiki offre une interface Ajax obsolète pour être utilisée par les extensions. Ajax est un terme pour utiliser JavaScript à charger des parties de page à la demande. MediaWiki 1.16 est fourni avec, et par conséquent l'utilisation de Sajax n'est pas recommandée.

Ainsi, le code JavaScript doit utiliser à la place (ou le module JavaScript mediawiki.api). On fera ainsi une requête à l' API MediaWiki sur AJAX (au lieu de ).

Demandes asynchrones
Une requête dite asynchrone envoie ses données vers le serveur, puis continue son exécution. Quelques temps après, le serveur peut renvoyer une réponse (selon le type de la requête qu'il a reçue), auquel cas celle-ci sera transmise à une fonction JavaScript pour être traitée. Une autre fonction peut être fournie pour gérer les cas où la requête échoue pour une raison quelconque. Vous trouverez ci-dessous un exemple d'appel à l'API de connexion avec l'envoi du nom d'utilisateur et du mot de passe.

Alternativement vous pouvez utiliser les fonctions jQuery directement :

La fonction « mw.util.wikiScript » n'est disponible que depuis la version 1.18.

Requêtes synchronisées
L'autre type de requête (les requêtes synchrones) consiste à envoyer des données au serveur et à attendre la réponse. Cela signifie que JavaScript restera bloqué le temps que le serveur renvoie des données, ou que la requête échoue pour quelque raison. L'exemple suivant récupère la liste des modèles de « Pages liées » :

( is a JavaScript standard function that returns an object from its string representation in JSON format.)

Limitations
Due to the same origin policy, it is difficult for a script on an external site to retrieve data from a wiki that is hosted on a different domain &mdash; for example, one cannot directly retrieve data from  to. Newer browsers support an explicit instruction to permit this access via cross-origin resource sharing but this will only work with servers that are configured to issue the appropriate headers, and the user must be using a recent browser that recognises it. Les développeurs qui ont des problèmes avec les anciens navigateurs ne peuvent pas encore utiliser CORS.

It is possible to circumvent the Same-Origin policy using JSONP instead of plain JSON which will work in older browsers (including Internet Explorer 6).

Fonctionnalités associées obsolètes
Sajax est une ancienne bibliothèque Ajax qui (depuis septembre 2012) fait encore partie du code du noyau et qui est utilisée par quelques extensions. Ne l'utilisez pas, remplacez la par. Certaines extensions au lieu d'utiliser Sajax ou pas, font des appels Ajax via le AjaxDispatcher qui est obsolète, en invoquant. Elles doivent les remplacer par des requêtes à l' MediaWiki pour les modules correspondants de l'API.

Voir aussi

 * - Extensions utilisant l'interface Ajax de MediaWiki.

Liens externes

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

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