2016-11-03 3 views
0

Meine Komponente Vorlagen-URL verweist auf Server, der die Antwort HTML generiert und es kann verschiedene HTTP-Fehlerstatuscodes (401, 403 usw.) zurückgeben, wenn etwas schief geht. Wenn beim Laden der Route ein Fehler auftritt, möchte ich den Fehlerstatus erhalten. Die Verwendung von router.events.subscribe und die Überprüfung auf NavigationError liefert nicht den http-Fehlerstatus, sondern nur einen Text - "konnte URL/to/my/template nicht laden". Irgendeine Idee, wie man die Antwort http Statuscode erhält?Wie bekomme ich angular 2 Router Fehler http Statuscode

Antwort

0

Diese Funktion macht eine HTTP-Anfrage mit URL als Parameter.

get_http_response(url) { 
this._http.get(url)  /*this make http request to server*/ 
.map((response: Response) => { 
    response.json(); 
    this.responseStatus = response.status; /* local variable to restore status code. */ 
}) /*this get response back and map it*/ 
// ...errors if any 
.catch((error: any) => Observable.throw(error.json().error || 'Server error') 
) 
.subscribe(
    resdata => { 
    this.getdata = resdata; /*local variable to store data. */ 
    console.log("fetched data =>" +this.getdata); 
    console.log("status code =>" + this.responseStatus); 
    } 
); 

}

ich denke, es Ihr Problem zu lösen, wenn Sie einen Fehler kommentieren unten Post.

Vielen Dank.