Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

HTML dans XMLHttpRequest

Baseline
Large disponibilité
*

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.

La spécification W3C de XMLHttpRequest ajoute la prise en charge de l'analyse HTML à XMLHttpRequest, qui ne prenait initialement en charge que l'analyse XML. Cette fonctionnalité permet aux applications Web d'obtenir une ressource HTML sous forme de DOM analysé en utilisant XMLHttpRequest.

Pour obtenir un aperçu de l'utilisation générale de XMLHttpRequest, voir Utiliser XMLHttpRequest.

Limitations

Pour décourager l'utilisation synchrone de XMLHttpRequest, la prise en charge de HTML n'est pas disponible en mode synchrone. De plus, la prise en charge de HTML n'est disponible que si la propriété responseType a été définie sur "document". Cette limitation évite de perdre du temps à analyser inutilement le HTML lorsque le code hérité utilise XMLHttpRequest en mode par défaut pour récupérer responseText pour les ressources text/html. De plus, cette limitation évite les problèmes avec le code hérité qui suppose que responseXML est null pour les pages d'erreur HTTP (qui ont souvent un corps de réponse text/html).

Utilisation

Récupérer une ressource HTML sous forme de DOM en utilisant XMLHttpRequest fonctionne de la même manière que la récupération d'une ressource XML sous forme de DOM en utilisant XMLHttpRequest, sauf que vous ne pouvez pas utiliser le mode synchrone et que vous devez explicitement demander un document en assignant la chaîne de caractères "document" à la propriété responseType de l'objet XMLHttpRequest après avoir appelé open() mais avant d'appeler send().

js
const xhr = new XMLHttpRequest();
xhr.onload = () => {
  console.log(xhr.responseXML.title);
};
xhr.open("GET", "fichier.html");
xhr.responseType = "document";
xhr.send();

Encodage des caractères

Si l'encodage des caractères est déclaré dans l'en-tête HTTP Content-Type, cet encodage des caractères est utilisé. À défaut, si un marqueur d'ordre des octets est présent, l'encodage indiqué par ce marqueur est utilisé. À défaut, si un élément HTML <meta> déclare l'encodage dans les 1024 premiers octets du fichier, cet encodage est utilisé. Sinon, le fichier est décodé en UTF-8.

Spécifications

Spécification
XMLHttpRequest
# interface-xmlhttprequest

Compatibilité des navigateurs

Voir aussi