Der erste Fehlertyp wird aus Sicht des XMLHttpRequest- Objekts angegeben und ist eine Situation, die verhindert, dass die Anforderung oder Anforderung ausgeführt wird, z. B., dass der Hostname im DNS nicht aufgelöst wird , eine abgelehnte Verbindung oder eine Nicht-URL gültig zum Beispiel.
Der zweite Fehlertyp wird aus Sicht unserer Anwendung angegeben, hat jedoch nichts mit dem XMLHttpRequest- Objekt zu tun, dh es wurde eine Anforderung gestellt, sie wurde akzeptiert, verarbeitet und eine Antwort generiert, die Antwort jedoch nicht war der erwartete Inhalt, z. B. wenn die angegebene URL nicht vorhanden ist.
Behandlung von SetUp-Fehlern
Der erste Fehlertyp, den wir behandeln müssen, ist die Übergabe fehlerhafter Daten an das XMLHttpRequest- Objekt, etwa eine fehlerhafte URL. Obwohl dies verrückt klingt, handelt es sich um einen ziemlich häufigen Fehler, wenn wir mit Ajax arbeiten .
Sehen wir uns zum Beispiel den folgenden Aufruf an, der uns zu diesem Fehler führen kann:
httpRequest.open ("GET", "http: //");
Ein Problem dieses Typs tritt normalerweise auf, weil der Benutzer aufgefordert wird, einen Wert oder Daten einzugeben, mit denen die URL generiert wird. Bekanntlich ist der Benutzer die erste Schwachstelle eines Programms, und dies ist auch nicht der Fall In diesem Fall müssen wir Wege entwickeln, um alle Arten von Inhalten, die Sie uns senden, zu validieren und zu verarbeiten.
Um dies zu handhaben, verwenden wir einen Try / Catch- Block, mit dem wir den Code ausführen können. Wenn ein Problem auftritt, erfassen wir den Fehler oder die Ausnahme und geben ihm eine angemessene Behandlung. In diesem Beispiel zeigen wir den Fehler, wie wir in sehen können Der folgende Code, den wir zusammenfassen und der nur die Teile zeigt, die diesen bestimmten Punkt interessieren:
versuche { ... httpRequest.open ("GET", "http: //"); ... httpRequest.send (); } catch (error) { displayErrorMsg ("try / catch", error.message); }
Innerhalb des catch- Blocks haben wir die Möglichkeit, den Fehler zu speichern. Hierzu können wir die erneute Eingabe der Daten anfordern, an eine Seite senden, auf der der Fehler angezeigt wird, usw. Wichtig ist, dass die Seite nicht fehlschlägt und der Vorgang für den Benutzer unerwartet abbricht.
Behandlung von Anforderungsfehlern
Dieser Fehler wird generiert, wenn wir die Anfrage stellen, aber etwas stimmt nicht, zum Beispiel, dass die angeforderte URL im DNS nicht aufgelöst wird. Sehen wir uns den folgenden Aufruf an:
httpRequest.open ("GET", "http: //a.nodomain/doc.html");
In diesem Fall kann die URL nicht vom DNS aufgelöst werden, und da sie einen anderen Ursprung als das Dokument hat, kann dies auch Auswirkungen auf uns haben. Um diese Art von Fehlern zu verwalten, verwenden wir eine Funktion, die uns bei der Behandlung hilft, wie in der hier gezeigten Beispiel:
Funktion handleError (e) { displayErrorMsg ("Fehlerereignis", httpRequest.status + httpRequest.statusText); }
Der einzige Punkt, den wir berücksichtigen müssen, ist, dass Browser die httpRequest- Objektinformationen nicht auf dieselbe Weise behandeln, sodass die Antwort möglicherweise nicht dieselbe ist.
Damit haben wir das Tutorial beendet und wir haben bereits ein besseres Konzept für den Umgang und die Verwaltung der Fehler, die in einer Ajax- Anfrage auftreten können und die dazu führen können, dass unsere Seite fehlschlägt.