XMLHttpRequest

XMLHttpRequest

XMLHttpRequest (XHR) ist eine API zum Transfer von beliebigen Daten über das Protokoll HTTP. Dabei können sämtliche HTTP-Anfragemethoden (unter anderem GET, POST, HEAD, PUT) verwendet werden. Wenn eine Anfrage XML-Daten liefert, kann XMLHttpRequest diese alternativ als Plaintext oder als DOM-Baumstruktur zurücksenden. Letzteres eignet sich beispielsweise dazu, mit Web Services zu kommunizieren. XMLHttpRequest kann aus JavaScript, JScript und VBScript heraus verwendet werden und bildet einen Grundbestandteil der Ajax-Technik.

Die Schnittstellenbeschreibung des XMLHTTPRequest-Objekts gemäß dem W3C Standardisierungs-Vorschlag.

XMLHttpRequest ermöglicht einem Skript einer Webseite, Daten dynamisch vom Webserver abzurufen, ohne dass dazu die Seite neu geladen werden müsste. Dies war zuvor nur durch den Einsatz unsichtbarer Frames/IFrames oder mit On-Demand JavaScript[1] möglich. Da XMLHttpRequest Anfragen asynchron verarbeiten kann, muss ein Skript nicht warten, bis die Anfrage beantwortet ist, sondern kann solange andere Aufgaben abarbeiten.

Geschichte

Die XMLHttpRequest-Technik wurde ursprünglich von Microsoft entwickelt und steht im Internet Explorer seit Version 5.0 als ActiveX-Objekt zur Verfügung. Viele Browser unterstützen diese API, neben dem Internet Explorer[2] sind das Mozilla und alle anderen Gecko-Derivate (ab Version 1.0)[3], Opera (ab Version 7.6 Beta) und Safari (ab Version 1.2)[4], Konqueror und alle anderen KHTML-Derivate.

Trotz der guten Verfügbarkeit der API in neueren Browsern wird an ihr auch Kritik geübt, da es schwierig ist, Webseiten, die XMLHttpRequest einsetzen, auch älteren Browsern in vollem Umfang zugänglich zu machen. Dies erklärt auch, warum XMLHttpRequest erst in neuerer Zeit vermehrt zum Einsatz kommt. Ein weiterer Kritikpunkt ist, dass sich Web-Anwendungen, die auf XMLHttpRequest setzen, nur schwer barrierefrei umsetzen lassen.

Wie aus den einzelnen Schnittstellenbeschreibungen der verschiedenen XMLHttpRequest-Implementierungen hervorgeht, sind diese nicht vollständig zueinander kompatibel. Aus diesem Grund wurde unlängst eine einheitliche Definition für das XMLHttpRequest-Objekt durch das W3C zur Standardisierung vorgeschlagen.[5] Eine zweite Spezifikation, die Domain-übergreifende Abfragen (d. h. die Daten, die das Skript abruft, befinden sich auf einer anderen Domain als es selbst) erlauben und damit über die bisherigen Implementierungen hinausgehen soll, ist beim W3C bereits in Arbeit.[6]

Codebeispiele (JavaScript)

Das folgende Beispiel ruft eine Ressource auf derselben Domain über XMLHttpRequest auf und gibt den Inhalt in einem Meldungsfenster aus:

var xmlHttp = null;
try {
    // Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
    xmlHttp = new XMLHttpRequest();
} catch(e) {
    try {
        // MS Internet Explorer (ab v6)
        xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
        try {
            // MS Internet Explorer (ab v5)
            xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            xmlHttp  = null;
        }
    }
}
if (xmlHttp) {
    xmlHttp.open('GET', 'beispiel.xml', true);
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            alert(xmlHttp.responseText);
        }
    };
    xmlHttp.send(null);
}

Quellen

  1. Ajax Patterns – On-Demand Javascript
  2. Schnittstellenbeschreibung des XMLHttpRequest-Objekts für den IE
  3. Schnittstellenbeschreibung des XMLHttpRequest-Objekts für Mozilla
  4. Schnittstellenbeschreibung des XMLHttpRequest-Objekts für Safari
  5. Schnittstellenbeschreibung des XMLHttpRequest-Objekts vorgeschlagen durch das W3C
  6. W3C-Vorschlag für „XMLHttpRequest 2“ / „cross-site extensions to XMLHttpRequest“

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • XMLHttpRequest — (XMLHTTP, XHR)  API, доступное в скриптовых языках браузеров, таких как JavaScript. Использует запросы HTTP или HTTPS напрямую к веб серверу и загружает данные ответа сервера напрямую в вызывающий скрипт.[1] Информация может передаваться в… …   Википедия

  • Xmlhttprequest — ist eine API zum Transfer von beliebigen Daten über das Protokoll HTTP. Dabei können sämtliche HTTP Anfragemethoden (unter anderem GET, POST, HEAD, PUT) verwendet werden. Wenn eine Anfrage XML Daten liefert, kann XMLHttpRequest diese alternativ… …   Deutsch Wikipedia

  • XMLHTTPRequest — est un objet ActiveX ou 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… …   Wikipédia en Français

  • XMLHttpRequest — est un objet ActiveX ou 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… …   Wikipédia en Français

  • XMLHttpRequest — (XHR), también referida como XMLHTTP (Extensible Markup Language / Hypertext Transfer Protocol), es una interfaz empleada para realizar peticiones HTTP y HTTPS a servidores Web. Para los datos transferidos se usa cualquier codificación basada en… …   Wikipedia Español

  • XMLHttpRequest — HTTP Persistence · Compression · HTTPS Request methods OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT Header fields Cookie · ETag · Location · Referer DNT · …   Wikipedia

  • Xmlhttprequest — XMLHTTP (XMLHttpRequest, XHR) набор API, используемый в языках JScript, VBScript и им подобных для пересылки различных данных (XHTML, HTTP протоколу между браузером и веб сервером. Позволяет осуществлять HTTP запросы к удаленному серверу без… …   Википедия

  • XHR — XMLHttpRequest ist eine API zum Transfer von beliebigen Daten über das Protokoll HTTP. Dabei können sämtliche HTTP Anfragemethoden (unter anderem GET, POST, HEAD, PUT) verwendet werden. Wenn eine Anfrage XML Daten liefert, kann XMLHttpRequest… …   Deutsch Wikipedia

  • XHR — XMLHttpRequest XMLHttpRequest est un objet ActiveX ou 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… …   Wikipédia en Français

  • XMLHttp — XMLHttpRequest XMLHttpRequest est un objet ActiveX ou 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… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”