XMLHttpRequest

Un article de Wikipédia, l'encyclopédie libre.

XMLHttpRequest est un objet Javascript qui permet d'obtenir des données au format XML, JSON, mais aussi HTML, ou encore texte simple à l'aide de requêtes HTTP.

On explique le succès récent de l'objet et la très grande utilisation qui en est faite actuellement (parfois au détriment de l'accessibilité d'un site) par la simple création du nom AJAX.

Sommaire

[modifier] Historique

XMLHttpRequest a d'abord été développé par Microsoft, en tant qu'objet ActiveX, pour Internet Explorer 5.0. (septembre 1998). Il a ensuite été repris et implémenté successivement sous Mozilla 1.0 (mai 2002), Safari 1.2 (février 2004), Konqueror 3.4 (mars 2005) et dernièrement Opera 8.0 (avril 2005).

En raison de ces implémentations plutôt récentes, l'objet n'est pas supporté par les navigateurs dits de « vieille génération ».

En avril 2006, il a été proposé pour devenir une recommandation[1] du W3C.

[modifier] Création d'un objet XMLHttpRequest

Pour le navigateur Internet Explorer (avant IE7), il faut créer un ActiveX de la manière suivante :

xhr = new ActiveXObject("Microsoft.XMLHTTP");

Ou bien :

xhr = new ActiveXObject("Msxml2.XMLHTTP");

Pour les autres navigateurs (ou à partir d'IE7), l'objet XMLHttpRequest est supporté nativement :

xhr = new XMLHttpRequest();

Le script suivant permet de créer l'objet selon ce que le navigateur supporte.

if (window.XMLHttpRequest) 
{
  //Firefox ou IE >= 7.0
  xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject) 
{
  try 
  { // essaie de charger l'objet pour IE
    xhr = new ActiveXObject("Msxml2.XMLHTTP");
  } 
  catch (e) 
  {
     try 
     { // essaie de charger l'objet pour une autre version IE
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
     } 
     catch (e) 
     {
        window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
     }
  } 
}

[modifier] Description générale

L'objet se résume à quelques attributs et quelques méthodes telles que :

  • constructeur : créer un nouvel objet ;
  • open : définir le type de requête ;
  • send : envoyer des données ;
  • setRequestHeader : modifier l'en-tête de la requête.

[modifier] Voir aussi

[modifier] Références

  1. L'objet XMLHttpRequest en français, ou (en) [1]