我有一个Web服务,当我请求输入错误的数据时,该Web服务将以HTTP 400状态代码返回:
{
"result": "Member Language Code Can Not Be Empty",
"errorCode": "ERROR-10"
}
当我想在Angular项目中读取此错误时,无法使用以下代码执行此操作:
this.memberService.addUserMembers(this.memberAddForm)
.pipe(
map(res => res),
catchError((error: HttpErrorResponse) => {
if (error.status === 400)
console.log("400 Bad Request!");
return throwError("Request Error!)");
}))
.subscribe(
data => {
this.router.navigate(['member-list']);
},
(error:HttpErrorResponse) => {
console.log(error.error);
this.loading = false;
}
);
}
当我通过chrome调试时,我发现catch错误永远不会起作用,并且错误只是“ OK”。它没有任何其他财产。 error.error始终返回“未定义”。
答案 0 :(得分:0)
您可以使用
this.http.get('…', { observe: 'response' });
尽管这是最常见的情况,但有时您会处理不同类型的数据。通过responseType属性支持。
this.http.get('...', { responseType: 'text' });
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text'