В службе Angular, использующей HttpClient
, я создал метод, который возвращает необработанный HTTP-ответ от POST
:
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
, и не смог - даже не уверен, что это правильный подход.
Итак, как я могу вернуть необработанный http-ответ моему компоненту, если статус не равен 200?