【发布时间】:2020-02-01 05:36:33
【问题描述】:
在使用 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