Java Reference
In-Depth Information
Bei AJAX steht damit ein Kommunikationsobjekt im Mittelpunkt. Alle modernen Browser
bieten mittlerweile zur Unterstützung dieser asynchronen Kommunikation zwischen Client
und Webserver mit dem als Erweiterung des JavaScript-Objektmodells aufgenommenen
Objekt XMLHttpRequest eine eingebaute Schnittstelle zur Kontrolle von HTTP-Transaktio-
nen aus clientseitigen Programmiersprachen (hauptsächlich JavaScript), die unabhängig
von  der „normalen“ Datenanforderung des Webbrowsers ablaufen. Diese XHR- bzw.
XMLHttpRequest-Objekte sind damit unmittelbar an dem internen Aufbau von HTTP orien-
tiert und bilden das Rückgrat jeder AJAX-Anfrage.
10.4.2■Ein XMLHttprequest-Objekt erzeugen
Um mit einem XHR-Objekt arbeiten zu können, muss dieses entsprechend der Regeln der
eingesetzten Programmiersprache erzeugt werden. Dies erfolgt in JavaScript bekanntlich
über den Einsatz einer passenden Konstruktormethode. Ein Objekt vom Typ XMLHttpRequest
stellt dann alle relevanten Methoden und Eigenschaten zur asynchronen Kommunikation
per AJAX bereit. Dabei können auf Basis der üblichen Übertragungsmethoden wie GET und
POST Daten verschickt bzw. Informationen angefordert und Antworten empfangen sowie
der Request-Header gesetzt und ausgewertet werden.
HInWEIS: Beachten Sie, dass mit AJAX-Anfragen aus Sicherheitsgründen in der
Regel nur Daten von der gleichen Domain angefordert werden dürfen, von der die
anfordernde Webseite stammt. Das ist ein ot zu indendes Sandkastenprinzip
( Sandbox ), das wir beim Thema Sicherheit ebenfalls berühren ( Same Origin
Policy ). Andernfalls würde man einen sogenannten Cross-Domain-Zugrif durch-
führen und dieser würde Missbrauch und Manipulation Tür und Tor öfnen. Aller-
dings ist die Einschränkung erheblich und es gibt einige Workarounds, diese
Beschränkungen aufzuheben, ohne die Sicherheit zu gefährden.
Nun erzwingen die verschiedenen Browserinkompatibilitäten, dass man das XHR-Objekt
auf verschiedene Arten erzeugt, damit das Verfahren in allen relevanten Browsern funktio-
niert. Die Grundvorgehensweise sieht so aus:
Listing 10.2■ Erzeugen eines XHR-Objekts mit einem Konstruktor
resObjekt = new XMLHttpRequest();
Damit kommen ältere Versionen des Internet Explorers aber nicht zurecht. Sie erzwingen
eine Erstellung als ActiveX-Control und das auch noch je nach Version des Browsers bzw.
bestimmter Windows-Bibliotheken mit unterschiedlichen Parametern. Deshalb muss man
eine automatische Unterscheidung zwischen den verschiedenen Wegen zur Erzeugung des
Kommunikationsobjekts programmieren. Weil jedoch nicht nur der Browser von Bedeutung
ist, sondern auch Windows-Bibliotheken, kann man keine Browserweiche einsetzen. In der
Regel arbeitet man deshalb mit dem Konzept der Ausnahmebehandlung. Man versucht ein-
fach, das XHR-Objekt zu erzeugen, und wenn es schief geht, wählt man einen alternativen
Weg. Indem man die Versuche in eine Ausnahmebehandlung integriert, kann das Skript
trotz einer fehlgeschlagenen Erzeugung des Objekts stabil weiterlaufen.
 
Search WWH ::




Custom Search