2016-12-28 22 views
7

error-handling przedstawia sposób obsługi błędów w następujący sposób:Jak obsługiwać netto :: ERR_CONNECTION_REFUSED w Angular2

private handleError (error: Response | any) { 
    // In a real world app, we might use a remote logging infrastructure 
    let errMsg: string; 
    if (error instanceof Response) { 
    const body = error.json() || ''; 
    const err = body.error || JSON.stringify(body); 
    errMsg = `${error.status} - ${error.statusText || ''} ${err}`; 
    } else { 
    errMsg = error.message ? error.message : error.toString(); 
    } 
    console.error(errMsg); 
    return Promise.reject(errMsg); 
} 

Chciałbym uzyskać dostęp do serwera API, ale serwer nie rozpoczął. Potem dostałem błąd:

http://localhost:3000/api/heroes net::ERR_CONNECTION_REFUSED 

muszę grzecznie poinformować użytkownika, że ​​serwer API nie rozpoczął. Jak powinienem obsłużyć błąd?

Odpowiedzi błędu:

_body:ProgressEvent 
headers:Headers 
ok:false 
status:0 
statusText:"" 
type:3 
url:null 

Czy mogę sobie z tym poradzić według statusu odpowiedzi?

+0

Chcę również wiedzieć, dlaczego 'ERR_CONNECTION_REFUSED' nie może natychmiast odpowiedzieć. Zdarza się to minutę później. – niaomingjian

Odpowiedz

2
//First inject the router in the constructor 


private handleError (error: Response | any) { 
//Your other codes  

if (error.status == 0){ //or whatever condition you like to put 
this.router.navigate(['/error']); 
} 
} 
+0

Co oznacza stan 0? Gdzie mogę znaleźć definicję online? – niaomingjian

+0

Kod stanu odpowiedzi od 200 do 299 jest uważany za status pomyślny, inne kody oznaczają błąd. Więcej szczegółów: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes – siva636

+1

Wiem. Ale jaki jest status 0? Normalnie status 0 oznacza sukces w innych językach programowania. – niaomingjian