Wie bereits erwähnt, muss eine Methode definiert werden, die aufgerufen werden soll, wenn sich der Abfragezustand ändert. Dies geschieht, indem man die Eigenschaft onreadystatechange setzt. Man beachte, dass es dabei um eine Zustandsänderung geht, nicht um eine Vervollständigung – das sind zwei völlig unterschiedliche Dinge. Am besten lässt sich dies an einem Beispiel zeigen, das alle bisherigen Ausführungen einschließt. Das Folgende soll in einer Datei abgelegt werden:
In der abgefragten Datei kann dies mit allem was man will ersetzt werden, der Inhalt wird noch nicht verwendet werden, es soll nur gefunden werden können.
Es ist zu bemerken, dass bei erfolgter Eingabe mehrfach die Meldung readystate erscheint und schließlich angezeigt wird, dass der readyState gleich 4 ist. Verschiedene Browser verfahren hier in unterschiedlicher Weise, in Safari wird nett von 0-4 gezählt, aber in Firefox erscheint die 1 zweimal und die 0 nur im ersten Durchlauf. Hier interessiert zum Glück lediglich der readyState 4, doch der Vollständigkeit halber hier die Bedeutung der verschiedenen Zahlen:
Dank dieser Informationen kann nun die Methode myReturnMethod so geändert werden, dass der Hinweis nur erscheint, wenn die Abfrage vollständig ist.
Abfragestatus
Unter Verwendung des letzten Codes werden nun die URL-Parameter der Methode open geändert und auf eine Datei gelegt, die nicht existiert.
Wird der Code nun ausgeführt, ist das Ergebnis genau dasselbe wie beim alten Code – was ist hier geschehen?
Wäre dies eine normale http-Abfrage würde man eine 404-Fehlermeldung erwarten – unter Ajax gilt dasselbe in Bezug auf die Eigenschaft status. Diese Eigenschaft kann nur gelesen werden und enthält den http-Statuscode der Abfrage, im Falle der vorliegenden Datei lautet dieser 404. Unter Ajax gelten die gleichen Statuscodes, die man bereits von normalen http-Abfragen her kennt. (Damit dies richtig funktioniert, sollte man die Seite von einem http-Server anfordern; wird sie aus dem Dateisystem gelesen, ist der Statuscode immer undefiniert.)
Es muss daher ein if-Statement hinzugefügt werden, das überprüft, ob eine Abfrage erfolgreich war. Wenn ja, wird der Antwortcode 200 gesendet. War sie nicht erfolgreich, muss eine Reaktion auf den Fehler möglich sein.
Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…
Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.
Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…
Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.
Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.
Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…