在 Angular 5 中处理 HTTP 状态代码
handle HTTP status codes in Angular 5
我正在尝试在调用后端服务的服务中捕获 angular 中的 http 状态代码,我遇到了状态 204 的问题,但是在记录 angular 时显示状态为空,这是我在服务中所做的事情:
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 网关调用服务,我在 Response Integrations 中设置错误。
要处理不同的状态代码,只需检查它们:
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
,当然,还可以显示带有错误消息的漂亮对话框。
我正在尝试在调用后端服务的服务中捕获 angular 中的 http 状态代码,我遇到了状态 204 的问题,但是在记录 angular 时显示状态为空,这是我在服务中所做的事情:
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 网关调用服务,我在 Response Integrations 中设置错误。
要处理不同的状态代码,只需检查它们:
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
,当然,还可以显示带有错误消息的漂亮对话框。