Ich entwickle ein Frontend, das JSON-Dienste nutzt, die von einem Server bereitgestellt werden.Angular2 HTTP - So verstehen Sie, dass der Backend-Server nicht aktiv ist
Ich verwende gerne HTTP von Angular2 und ich kann Fehler über .catch()
Operator abfangen.
Wenn ich ein Problem im Zusammenhang mit einem bestimmten Dienst zu finden (zum Beispiel des Dienst nicht durch den Server definiert) die catch()
Betreiber erhalten ein Response
mit Status 404
und ich kann die Situation leicht verwalten.
Auf der anderen Seite, wenn es der Server, der vollständig nach unten, die catch()
Bediener eine Antwort mit dem Statuscode empfangen 200
und ohne spezifische Zeichen oder Text, um die Ursache des Problems im Zusammenhang (das ist, dass der gesamte Server ist Nieder). Auf der Konsole sehe ich, dass eckig (http.dev.js) schreibt eine Nachricht net::ERR_CONNECTION_REFUSED
, aber ich weiß nicht, wie etwas ähnliches (d. H. Verstehen, was passiert und reagieren angemessen) aus meinem Code.
Jede Hilfe wäre willkommen.
Haben Sie eine Lösung für diese finden? Siehe auch meine Antwort hier .... –
Wenn ich einen Fehler in einer http-Operation (zB POST, GET) erhalte und der Fehlerstatus 200 ist, dann nehme ich an, dass der ganze Server heruntergefahren ist, etwas wie 'private handleError (error: Response) { Fehler; if (error.status == 200) { errorText = 'Der gesamte Server ist ausgefallen. Die Verbindung wurde abgelehnt. "; } return Observable.throw (errorText || 'Serverfehler'); } '; weit davon entfernt, dass diese Methode wirklich in Ordnung ist, aber scheint in den Fällen zu funktionieren, in denen ich konfrontiert – Picci
Sieht aus wie eine gute Problemumgehung. Sie sollten jedoch feststellen, dass Ihr Code beschädigt wird, wenn Sie das Problem lösen und ein Upgrade durchführen. Daher ist es möglicherweise eine gute Idee, jedes Mal, wenn Sie diese Problemumgehung verwenden, ein 'TODO' zu setzen. –