L’objet XmlHttpRequest

L’objet XmlHttpRequest

  1. Objectifs

    • ِConnaitre l’objet XMLHttpRequest
    • Etre capable de créer l’objet XMLHttpRequest
  2. Présentation

    • L’objet XMLHttpRequest permet de faire des requêtes HTTP au serveur, de recevoir des réponses et de mettre à jour une partie de la page Web.
    • En mode asynchrone, cette mise à jour se réalise sans devoir recharger la page et donc de façon totalement transparente pour l’utilisateur.
    • XMLHttpRequest est l’objet qui va vous permettre d’utiliser la technologie Ajax au sein de vos pages web.
    • XMLHttpRequest est basé sur le principe d’échange de données entre un client (la page WEB de l’internaute qui prend l’initiative de la connexion) et un serveur sur lequel se trouve la page ou l’application à laquelle la page Web
      veut accéder.
    • L’objet XMLHttpRequest s’utilise donc dans une architecture de type client-serveur.






  3. Historique de l’objet XMLHttpRequest

    • XMLHttpRequest, a été d’abord implémenté dans Internet Explorer depuis la version 4.0.
    • Ce concept s’appelait XMLHTTP dans les premiers temps, avant qu’Ajax ne devienne le nom le plus communément utilisé.
    • L’emploi de XMLHttpRequest en 2005 par Google, dans Gmail et GoogleMaps a contribué au succès de ce format.
  4. Fonctionnement de l’objet XMLHttpRequest

    • L’objet XmlHttpRequest

    • L’objet XMLHttpRequest a été créé pour permettre aux développeurs d’initier des demandes HTTP à partir de n’importe où dans une application.
    • L’objet XMLHttpRequest est créé par le moteur JavaScript du navigateur.
    • Cet objet est alors utilisé pour envoyer une requête HTTP vers le serveur.
    • La réponse est fournie par celui-ci au navigateur.
    • À l’aide du HTML et des feuilles de style CSS, le résultat est ensuite affiché dans le navigateur.
    • La propriété XMLHttpRequest.readyState renvoie l’état dans lequel se trouve un client XMLHttpRequest. Un client XHR existe dans l’un des états suivants:
    • Les états possible du "readyState" :
      • 0 : Requête non initialisée,le client XMLHttpRequest a été créé, mais la méthode open() n’a pas encore été appelée.
      • 1 : Connexion au serveur établie, la méthode open() a été invoquée. Pendant cet état, les en-têtes de demande peuvent être définis à l’aide de la méthode setRequestHeader() et la méthode send() peut être appelée, ce qui lancera la récupération.
      • 2 : Requête reçue,
      • 3 : Requête en cours de traitement
      • 4 : Requête terminée et réponse prête
  5. XMLHttpRequest

    • Les objets XMLHttpRequest(XHR) permettent d’interagir avec des serveurs. On peut récupérer des données à partir d’une URL sans avoir à rafraîchir complètement la page. Cela permet à une page web d’être mise à jour sans perturber les actions de l’utilisateur. XMLHttpRequest est beaucoup utilisé par l’approche AJAX.
    • Propriétés
      1. XMLHttpRequest.onreadystatechange: Un gestionnaire d’événement (EventHandler) invoqué à chaque fois que l’attribut readyState change.
      2. XMLHttpRequest.readyState: L’état de la requête sous la forme d’un unsigned short.
      3. XMLHttpRequest.response : Un objet ArrayBuffer, Blob, Document, un objet JavaScript ou une chaîne de caractères (DOMString) selon la valeur de XMLHttpRequest.responseType. Cet objet contient le corps de la réponse.
      4. XMLHttpRequest.responseText : Une chaîne de caractères DOMString qui contient la réponse à la requête sous forme de texte ou la valeur null si la requête a échoué ou n’a pas encore été envoyée.
      5. XMLHttpRequest.responseType: Une valeur parmi une liste qui définit le type de réponse.
      6. XMLHttpRequest.responseURL : L’URL sérialisée de la réponse ou la chaîne vide si l’URL est nulle.
      7. XMLHttpRequest.responseXML : Un objet Document qui contient la réponse de la requête ou null si la requête a échoué, qu’elle n’a pas encore été envoyée ou qu’elle ne peut pas être analysée comme XML ou HTML. Cette propriété n’est pas disponible dans les workers.
      8. XMLHttpRequest.status : Une valeur numérique unsigned short qui décrit le statut de la réponse à la requête.
    • Évènements
      1. abort, onabort: Se déclenche lorsqu’une requête a été interrompue (par exemple via XMLHttpRequest.abort()).
      2. error, onerror: Se déclenche lorsqu’une requête a rencontré une erreur.
      3. load, onload : Se déclenche lorsqu’une transaction XMLHttpRequest se termine correctement.
      4. loadend, onloadend : Se déclenche lorsqu’une requête est terminée (avec une erreur ou non). Quand elle a réussi, l’événement a lieu après load). Quand elle a échoué, l’événement survient après error).
      5. loadstart, onloadstart : Se déclenche lorsqu’une requête commence à charger des données.
      6. progress : Se déclenche périodiquement lorsqu’une requête reçoit des données supplémentaires. Le gestionnaire onprogress est également disponible.
      7. timeout : Se déclenche lorsque la progression est terminée du fait de l’expiration de la durée limite. Le gestionnaire ontimeout est également disponible.
    • Méthodes
      1. XMLHttpRequest.abort(): Interrompt la requête si elle a déjà été envoyée.
      2. XMLHttpRequest.getAllResponseHeaders() : Renvoie, via une chaîne de caractères, l’ensemble des en-têtes de la réponse, séparés par CRLF ou la valeur null si aucune réponse n’a été reçue.
      3. XMLHttpRequest.getResponseHeader():Renvoie la chaîne de caractères contenant le texte de l’en-tête voulue ou null si aucune des réponse n’a été reçue ou si l’en-tête n’existe pas dans la réponse.

      4. XMLHttpRequest.open() : Initialise une requête. Cette méthode doit être utilisée par du code JavaScript.
      5. XMLHttpRequest.overrideMimeType(): Surcharge le type MIME renvoyé par le serveur.
      6. XMLHttpRequest.send(): Envoie la requête. Si la requête est asynchrone (le comportement par défaut), la méthode renvoie un résultat dès que la requête est envoyée.
      7. XMLHttpRequest.setRequestHeader(): Définit la valeur d’un en-tête de requête HTTP. Cette méthode doit être appelée après open() mais avantsend().
    • Source:https://developer.mozilla.org/fr/docs/Web/API/XMLHttpRequest
  6. Création de l’objet XMLHttpRequest

    • Utilisation de XMLHTTPRequest
      1. Instancier l’objet
      2. Initialiser une requête
        • Méthode, URL
        • Asynchrone ?
      3. Associer une fonction au traitement du résultat de la requête
      4. Effectuer la requête
        • Envoyer des données ?
      5. Traiter le résultat
        • Texte ?
        • XML / JSON ?
    • Création de l’objet XMLHttpRequest
      • La méthode open démarre la connexion, en mode lecture ou écriture, pour recevoir des données du serveur ou lui en envoyer. Ce sera traité sur le serveur par un langage coté serveur comme PHP, Java, etc…
      • La connexion passe par plusieurs états successifs qui sont assignés à l’attribut readyState de l’objet.
      • //Création de l'objet XmlHttpRequest(XHR)
        function nouveauXHR(){
           var xhrObject = null;
           if(window.XMLHttpRequest) // Firefox et autres
             xhrObject = new XMLHttpRequest();
           else if(window.ActiveXObject) {// Internet Explorer
             try{
        	   xhrObject = new ActiveXObject("Msxml2.XMLHTTP");
        	 }
        	catch (e){
        	   xhrObject = new ActiveXObject("Microsoft.XMLHTTP");
        	}
            } else {// XMLHttpRequest non supporté par le navigateur
        	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        	xhrObject = false;
            }
            return xhrObject;
        }
      • Soit un test préliminaire qui vérifie si le navigateur supporte l’objet natif XMLHttpRequest. Dans l’affirmative, l’objet XMLHttpRequest est créé.



Abonnez vous à notre chaîne YouTube gratuitement