Notice: Unexpected clearActionName after getActionName already called in /var/www/html/includes/context/RequestContext.php on line 338
XMLHttpRequest – Wikipedia Zum Inhalt springen

XMLHttpRequest

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von XHR)

XMLHttpRequest (kurz: XHR) ist eine Programmierschnittstelle für JavaScript zum Übertragen von Daten über HTTP. Entgegen dem Namen muss es sich bei diesen Daten nicht um XML handeln. XMLHttpRequest bildet einen Grundbaustein der Ajax-Technik.

XMLHttpRequest ermöglicht es einem Skript einer Webseite, Daten dynamisch vom Webserver abzurufen, ohne dass dazu die HTML-Seite neu geladen werden müsste. Dies war zuvor nur durch den Einsatz unsichtbarer HTML-Frames oder IFrames oder mit dynamisch nachgeladenen Skript-Dateien möglich.<ref name="AP">On-Demand Javascript. In: ajaxpatterns.org. 30. Juli 2014, archiviert vom Vorlage:IconExternal am 24. Juli 2015; abgerufen am 2. Dezember 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Da beim XMLHttpRequest-Verfahren Daten asynchron verarbeitet werden können, muss ein Skript nicht warten, bis die Anfrage beantwortet ist, sondern kann sich so lange anderen Aufgaben zuwenden.

Datei:XMLHTTPRequest-Object.PNG
Die Schnittstellenbeschreibung des XMLHTTPRequest-Objekts gemäß dem Standardisierungsvorschlag des W3C.

Es können HTTP-Verfahren wie Anfragemethoden, Authentifizierung und Caching verwendet werden. Wenn eine Anfrage XML-Daten liefert, kann XMLHttpRequest diese alternativ als Text oder als DOM-Baumstruktur zurücksenden. Letzteres eignet sich beispielsweise dazu, mit Webservices zu kommunizieren.

Mit der Einführung von Web Workers wurde XHR durch die Fetch API abgelöst.<ref>XMLHttpRequest API. In: developer.mozilla.org. Mozilla, 8. November 2023, abgerufen am 30. November 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref><ref>Fetch API. In: developer.mozilla.org. Mozilla, 1. April 2023, abgerufen am 30. November 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

Geschichte

Die XMLHttpRequest-Technik wurde ursprünglich von Microsoft entwickelt und stand im Internet Explorer ab Version 5.0 als ActiveX-Objekt zur Verfügung. Viele Webbrowser unterstützen diese API, neben dem Internet Explorer<ref name="IEIDL">IXMLHTTPRequest Members. In: learn.microsoft.com. Microsoft, 27. Oktober 2016, abgerufen am 2. Dezember 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), Schnittstellenbeschreibung des XMLHttpRequest-Objekts für den IE).</ref> (ab Version 7 als XMLHttpRequest) sind das Mozilla und alle anderen Gecko-Derivate (ab Version 1.0),<ref name="MOZIDL">XMLHttpRequest. In: developer.mozilla.org. Mozilla, 22. November 2023, abgerufen am 2. Dezember 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), Schnittstellenbeschreibung des XMLHttpRequest-Objekts für Mozilla).</ref> Opera (ab Version 7.6 Beta) und Apple Safari (ab Version 1.2),<ref name="SAFIDL">Dynamic HTML and XML: The XMLHttpRequest Object. In: developer.apple.com. Apple, 24. Juni 2005, archiviert vom Vorlage:IconExternal am 25. September 2011; abgerufen am 2. Dezember 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), Schnittstellenbeschreibung des XMLHttpRequest-Objekts für Safari).</ref> Konqueror und alle anderen KHTML-Derivate.

Wie aus den einzelnen Schnittstellenbeschreibungen der verschiedenen XMLHttpRequest-Implementierungen hervorgeht, sind diese nicht vollständig zueinander kompatibel. Aus diesem Grund wurde im Dezember 2012 eine einheitliche Definition für das XMLHttpRequest-Objekt durch das W3C zur Standardisierung vorgeschlagen.<ref name="W3CIDL">Anne van Kesteren et al.: XMLHttpRequest Level 1. In: w3.org. World Wide Web Consortium, 6. Oktober 2016, abgerufen am 2. Dezember 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), Schnittstellenbeschreibung des XMLHttpRequest-Objekts vorgeschlagen durch das W3C).</ref>

Seit Ende 2012 wird die Spezifikation als fortlaufend weiterentwickelter Living Standard von der WHATWG geführt.<ref name=":0">XMLHttpRequest Standard. 1.1. Specification history. In: xhr.spec.whatwg.org. Web Hypertext Application Technology Working Group (WHATWG), 27. September 2023, abgerufen am 2. Dezember 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

Codebeispiel (JavaScript)

Das folgende Beispiel ruft eine Ressource auf derselben Domain über XMLHttpRequest auf und gibt den Inhalt in einem Meldungsfenster aus. Wenn der Aufruf der Ressource fehlschlägt, wird keine Meldung ausgegeben:

<syntaxhighlight lang="javascript"> var xmlHttp = null; try {

   xmlHttp = new XMLHttpRequest();

} catch(e) {

   // Fehlerbehandlung, wenn die Schnittstelle vom Browser nicht unterstützt wird.

} if (xmlHttp) {

   xmlHttp.open('GET', 'beispiel.xml', true);
   xmlHttp.onreadystatechange = function () {
       if (xmlHttp.readyState == 4) {
           alert(xmlHttp.responseText);
       }
   };
   xmlHttp.send(null);

} </syntaxhighlight>

XMLHttpRequest Level 2

XMLHttpRequest Level 2 war ein Arbeitsentwurfs (working draft) beim W3C für eine Erweiterung der Spezifikation um u. a. domain-übergreifende Abfragen und die Unterstützung von Datenströmen. Diese Erweiterungen sind seit 2012 in den Standard aufgenommen worden.<ref>Anne van Kesteren et al.: XMLHttpRequest Level 2. In: w3.org. World Wide Web Consortium, 18. November 2014, abgerufen am 2. Dezember 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref><ref name=":0" />

Einzelnachweise

<references />

<templatestyles src="Erweiterte Navigationsleiste/styles legacy.css" />Vorlage:Klappleiste/Anfang

Empfehlungen

ActivityPub | ARIA | Canonical XML | CDF | CSS | DOM | Geolocation API | HTML | HTML5 | InkML | ITS | JSON-LD | MathML | OWL | P3P | PLS | PNG | RDF | RDF-Schema | RIF | SCXML | SISR | SKOS | SMIL | SOAP | SRGS | SSML | SVG | SPARQL | Timed Text | Turtle | VoiceXML | WSDL | XForms | XHTML | XHTML+RDFa | XInclude | XLink | XML | XML Base | XML-Encryption | XML Events | XML Information Set | XML Namespace | XML Schema | XML Signature | XPath | XPointer | XProc | XQuery | XSL | XSL-FO | XSLT (Elemente)

Arbeitsentwürfe
und Kandidaten

CCXML | CURIE | SMIL Timesheets | sXBL | WICD | XFrames | XBL | XHTML+MathML+SVG | XMLHttpRequest

Anmerkungen

XAdES | XFDL | XHTML+SMIL | XUP

Richtlinien

Web Content Accessibility Guidelines | Multimodal Interaction Activity | Markup Validation Service

Initiativen

Web Accessibility Initiative

Vorlage:Klappleiste/Ende