在所有情况下,即使出现错误,Angular也会获得原始的http响应

问题描述 投票:0回答:1

在使用httpClient的Angular服务中,我创建了一个方法,该方法仅从POST返回原始的HTTP响应:

  httpOptions = {
    headers: new HttpHeaders({
      'Content-Type': 'application/json'
      //observe: 'response'
    }),
    observe: 'response' as 'body'
  };

  forgotLogin(requestData: PUMRequestData): Observable<HttpResponse<string>> {
    return this.http.post<HttpResponse<string>>("http://...", requestData, this.httpOptions);

然后在我的组件中,我只是从原始的HTTP响应中查看状态和正文。

       this.api.forgotLogin(pumRequestData).subscribe(response => {
      this.hStatus = response.status;
      this.hBody = response.body;
    });

问题是,如果响应状态不在200系列中,则httpClient会引发错误。在我的用例中,无论状态是什么,我都只想获取请求状态和主体,并且我想根据组件中的状态而不是服务中的错误处理程序中的状态来决定要采取什么操作。我一直在尝试找到一种在服务中创建错误处理程序的棘手方法,该方法仅返回(Observable)http响应,但没有能够-甚至不确定这是否是正确的方法。

所以,当状态不是200系列时,如何将原始的HTTP响应返回给我的组件?

angular httpclient http-error
1个回答
0
投票
当您订阅HTTP响应时,可以添加错误处理程序。
© www.soinside.com 2019 - 2024. All rights reserved.