Chcę złapać wszystkie błędy http, aby poinformować użytkownika o wystąpieniu problemu.Angular 2 http nie przechwytuje błąd odmowy połączenia
Stworzyłem więc metodę, która pobiera HTTP z haczykiem.
get(path: string): Promise<any> {
let headers = new Headers();
return this.http.get(path, { headers: headers })
.toPromise()
.then(response => { ... })
.catch((response: Response) => { this.errorHandler(response); });
}
Gdy parametr jest ścieżka „/ usterek url” połów jest obsługiwane zgodnie z oczekiwaniami.
Ale gdy ścieżka jest "http://localhost:5000/fault-url" błąd nie jest przechwytywany przez metodę catch. Dodałem rejestrowanie do wszystkich różnych miejsc, ale to łączy metodę get po prostu przerywa. pokazy dziennika konsoli następujące błędy
OPCJE http://localhost:5000/fault-url netto :: ERR_CONNECTION_REFUSED
WYJĄTEK: Reakcja ze statusem: 0 dla adresu URL: null
Uncaught Response {_body: ProgressEvent, status: 0, OK : false, statusText: "", nagłówki: nagłówki ...}
Czy http naprawdę się kończy, czy robię coś nie tak?
Czy możesz podać mi szczegóły dotyczące sposobu radzenia sobie z tym błędem? – duardbr
Niestety @duardbr, nie rozumiem twojego pytania. Jeśli wystąpi błąd podczas wykonywania żądania, funkcja catch zwraca przyczynę niepowodzenia. Ten powód może na przykład zostać użyty do poinformowania użytkownika. –