我使用拦截器来嗅探所有HTTP请求/响应。
在服务器返回http 400的情况下,如何获取正文响应,Angular引发异常,并且在catch块中我无法获得正文消息:
return next.handle(request).pipe(
catchError((error: HttpErrorResponse) => {
console.log(error.body); // There is not body object here
});
答案 0 :(得分:1)
在我的项目中,我使用HttpErrorResponse
中的'@angular/common/http'
来实现这一目标
例如:
this.http.get('url').subscribe( response => {
}, (err: HttpErrorResponse) => {
if (err.status === 401 || err.status === 404) {
// do stuff
}
}
希望这对您有帮助
答案 1 :(得分:1)
下面是一个示例,您可以在Interceptor
的帮助下完成此操作
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).pipe(
catchError(error => this.handleError(error))
);
}
private handleError(error: HttpErrorResponse): Observable<any> {
if (error.status === 400) {
// Do your thing here
}
}
希望它能对您有所帮助。