读取从Angular 7中的Web服务返回的自定义错误代码和结果消息

时间:2019-05-18 09:38:30

标签: java angular web-services webservice-client

我有一个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始终返回“未定义”。

1 个答案:

答案 0 :(得分:0)

您可以使用

this.http.get('…', { observe: 'response' });

尽管这是最常见的情况,但有时您会处理不同类型的数据。通过responseType属性支持。

this.http.get('...', { responseType: 'text' }); 
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text'