我正在尝试在角度服务中捕获称为后端服务的服务中的http状态代码,当我看到状态204时遇到了问题,但是当记录角度显示状态为null时,这就是我在做的事情服务:
return this.http.get<JSON>(mybackendsserviceurl)
.do(res => {
})
.catch(res => {
return this.handleError(res);
});
}
private handleError(err: HttpErrorResponse) {
console.log(err.message);
return Observable.throw(err.message);
}
如何从后端服务中捕获不同的错误,例如204,403,404,500 ...等,并为每个错误显示用户友好的消息? 我的前端正在从API网关调用服务,而我正在设置响应集成中的错误。
答案 0 :(得分:0)
要处理不同的状态码,只需检查它们:
this.http.get<JSON>(<URL>)
.subscribe(
res => console.log(res),
err => {
console.error(err);
this.handleError(err);
});
private handleError(err: HttpErrorResponse) {
if( err.status == 500 ) {
return Observable.throw(new Error(<YOUR USERFRIENDLY MESSAGE>));
} else if( err.status == 400 ) {
return Observable.throw(new Error(<YOUR MESSAGE>));
}
// you can also catch all errors of a group like this
else if( err.status < 500 && err.status >= 400 ) {
return Observable.throw(new Error(<CLIENT ERROR MESSAGE>));
}
}
在您的UI中,您可以处理Observable
,当然,还可以显示一个带有错误消息的漂亮对话框。