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.
Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…
Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…
Nutzung einer unternehmenseigenen GPT-Umgebung für sicheren und datenschutzkonformen Zugriff.
Der Umsatz steigt um 15 Prozent, der Nettogewinn um 57 Prozent. Im nachbörslichen Handel kassiert…
Aus 61,9 Milliarden Dollar generiert das Unternehmen einen Nettoprofit von 21,9 Milliarden Dollar. Das größte…
Mehr Digitalisierung wird von den Unternehmen gefordert. Für KMU ist die Umsetzung jedoch nicht trivial,…