Blue Flower

 

 Die Methoden eines XHR-Objekt

Nachfolgend finden Sie die Methoden eines XHR-Objekts, die Sie für den AJAX-Austausch entweder zwingend benötigen oder die teilweise optionale Features bereitstellen:

Methode

Beschreibung

abort()

Der Aufruf der Methode bewirkt den Stopp der aktuellen Server-Anfrage. Genau genommen wird damit nur das Kommunikationsobjekt angewiesen, die Serverantwort zu ignorieren. Wenn die Antwort des Servers nach dem Aufruf der Methode eintrifft, wird sie also nicht in die Applikation eingebaut.

getAllResponseHeaders()

Über den Aufruf der Methoden erhalten Sie als Rückgabe die vom Server gesendeten Header-Felder als String.

getResponseHeader(
"headerLabel")

Die Methode gibt das als Parameter benannte Header-Feld als String zurück.

open("method", "URL"
[, asyncFlag[, "userName"[, "password"]]])

Die open()-Methode ist eine der wichtigsten Methoden eines XHR-Objekts. Sie initialisiert das Kommunikationsobjekt mit den Verbindungsdaten, die für einen Kontakt zum Webserver notwendig sind. Dabei werden mindestens zwei Parameter angegeben. Für method kann GET, POST, PUT oder HEAD verwendet werden, wobei in der Praxis GET oder POST dominieren.

GET überträgt Daten in Form einer Erweiterung des URLs.

POST kommt insbesondere dann zum Einsatz, wenn die gesendeten Daten größer als 500 Bytes sind.

HEAD wird verwendet, wenn nur Response-Header und keine Daten angefordert werden. Dieses kann z.B. verwendet werden, wenn für eine Datei auf dem Server das Datum der letzten Änderung abgefragt werden soll.

PUT wird zum Kopieren von Dateien auf den Server eingesetzt.

Der URL ist der relative oder absolute Pfad zum Serverskript oder der angeforderten Datei, wobei gegebenenfalls ein Querystring angefügt und ein Pseudo-URL verwendet werden kann.

Das dritte Argument gibt an, ob eine Anfrage synchron (false) oder asynchron (true) verarbeitet wird. Sofern eine synchrone Verarbeitung festgelegt wird, wird der folgende Versand der Daten mit der send()-Methode die Ausführung des Skripts solange blockieren, bis die Antwort des Servers vollständig empfangen wurde. In diesem Fall kann die Antwort des Servers im unmittelbar folgenden Schritt des Skripts verarbeitet werden. Diese Synchronisierung bietet sich hauptsächlich dann an, wenn die angeforderten Daten die Grundlage des weiteren Skriptablaufs darstellen (etwa wenn die erste AJAX-Anfrage Informationen aus einer Datenbank abholt, die einer folgenden AJAX-Anfrage mitgegeben werden sollen).

Beim asynchronen Anfordern von Daten wird das blockierende Warten des Browsers auf die Antwort vermieden (das ist auch bei AJAX-Applikationen der Regelfall). Das Skript läuft dann nach dem Absenden des Requests einfach weiter. Wenn Sie so eine Anfrageform wählen, kann die Antwort des Webservers nicht im unmittelbar nächsten Schritt des Skripts verarbeitet werden, da die Antwort wegen der Antwortzeiten der Transaktion so gut wie nie rechtzeitig da sein kann. Stattdessen werden wie gesagt deshalb eine Callback-Funktion oder eine anonyme Funktion definiert, die immer dann aufgerufen wird, wenn sich der Bearbeitungszustand der Transaktion ändert. Dies kann mit einer speziellen Eigenschaft eines XHR-Objekts - onreadystatechange - verfolgt werden.

Der optionale Parameter userName ist ein gegebenenfalls benötigter Benutzername für eine geschützte Ressource auf dem Server und 
password entsprechend das zugehörige Passwort.

send(content)

Die send()-Methode wird zum tatsächlichen Abschicken einer Anfrage verwendet. Sie wird nach dem Aufruf der open()-Methode aufgerufen.

Der Parameter content ist entweder null (bei GET) oder ein Querystring bei POST mit zum Webserver zu übertragenden Daten wie etwa Benutzerdaten.

setRequestHeader("label",
"value")

Mit dieser Methode können individuelle Header-Felder gesetzt werden.

setMimeType("mime-type")

Über diese Methode erfolgt das Setzen des MIME-Typs der angeforderten Daten (Response). Der Parameter mimetype ist die übliche Angabe eines MIME-Typs als String (z.B. "text/xml" oder "text/html"). Achtung: Die Methode wird von einigen Browsern nicht unterstützt (etwa dem Internet Explorer).

In der Praxis benötigen Sie beim Anfordern von XML-Daten auch oft keine explizite Festlegung von XML. Selbst wenn die XML-Daten ohne die Festlegung vom Server gesendet werden, können Sie auf dem XML-Baum navigieren. Die XML-Elemente stehen Ihnen auch dann zur Verfügung, wenn reiner Text oder HTML als MIME-Typ gesendet wird.