2016-12-28 4 views
7

error-handling zeigt, wie Fehler zu behandeln wie folgt:Wie Kescher :: ERR_CONNECTION_REFUSED in 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); 
} 

Ich möchte einen API-Server zuzugreifen, aber der Server nicht gestartet wurde. Dann habe ich den Fehler:

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

Ich brauche höflich um den Benutzer zu sagen, dass der API-Server nicht begonnen hat. Wie soll ich mit dem Fehler umgehen?

Die Fehlerreaktion ist:

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

Kann ich damit umgehen nach dem Status der Antwort?

+0

Ich möchte auch wissen, warum die 'ERR_CONNECTION_REFUSED' kann nicht sofort reagieren. Es passiert manchmal eine Minute später. – niaomingjian

Antwort

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

Was bedeutet der Status 0? Wo finde ich die Definition online? – niaomingjian

+0

Ein Antwortstatuscode zwischen 200 und 299 wird als Erfolgsstatus betrachtet, andere Codes weisen auf einen Fehler hin. Mehr Details: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes – siva636

+1

Ich weiß. Aber wie ist der Status 0? Normalerweise sehe ich den Status 0 als Erfolg in anderen Programmiersprachen. – niaomingjian

Verwandte Themen