Easy-Micro


ESPACEMEMBRE AJAX
Mise en pratique

Comment utiliser l'objet XMLHttpRequest

Tout d'abord, on déclare un objet XMLHttpRequest, puis on assigne le nom de la fonction que l'on utilisera pour la réponse et enfin on lance effectivement la requête.

Déclaration d'un objet XMLHttpRequest

// déclaration d'un variable nommée xhr
var xhr=null;

// si l'objet existe
if (window.XMLHttpRequest) {
// la variable xhr hérite de l'objet XMLHttpRequest (instance de classe)
xhr = new XMLHttpRequest();
}
// sinon, utiliser le composant XMLHTTP (pour IE 5 ou 6)
else if (window.ActiveXObject) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

Certaines versions de certains navigateurs Mozilla ne fonctionneront pas correctement si la réponse du serveur n'a pas un en-tête XML mime-type. Pour vous en assurer, vous pouvez utiliser un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml.

Ecraser l'en-tête envoyé par le serveur (facultatif)

xhr.overrideMimeType('text/xml');

Il faudra, ensuite, communiquer à l'objet de requête HTTP, le nom de la fonction JavaScript qui effectuera le travail d'analyse de la réponse. On utilisera, l'évènement onreadystatechange (propriété de XMLHttpRequest).

Assigne le nom de la fonction que l'on utilisera pour la réponse

xhr.onreadystatechange = nomDeLaFonction;

Notez qu'il n'y a ni parenthèses après le nom de la fonction, ni paramètres, car vous ne faites qu'assigner une référence à la fonction sans l'appeler effectivement. Par ailleurs, au lieu de donner un nom de fonction, vous pouvez utiliser la technique JavaScript de définition de fonctions au vol (ce qu'on appelle une fonction anonyme), et définir à cet endroit les actions à effectuer sur la réponse:

Autre exemple d'assignation (fonction anonyme)

xhr.onreadystatechange = function() {
// instructions de traitement de la réponse
};

Ensuite, il s'agit de lancer effectivement la requête. Il faut pour cela appeler les méthodes open() et send() de la classe de requête HTTP, comme ceci :


Suivez les aventures des skippers aquitains sur EasyVoile.com
Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]
Mercredi 20 mars 2019 - Semaine 12 - Saint Herbert (Demain: Sainte Clémence)
Aujourd'hui, c'est l'anniversaire de Danièle Gilbert (1943-76 ans), animatrice de télévision française et de Marthe Villalonga (1932), actrice française. Autre 20 mars: 1815 : de retour de l'île d'Elbe et après une marche triomphale sur Paris, Napoléon entre dans la capitale. 1965 : France Gall gagne l'Eurovision pour le Luxembourg avec Poupée de cire poupée de son.
Haut de page Easy-Micro