Насколько я понимаю, вы хотели бы:
- для отправки
post
запроса и получения данных
- но также имеют доступ к заголовкам ответа сервера.
Если это правда, вам следует рассмотреть возможность вызова HttpClient.post()
с httpOptions = { observe: 'response' }
.
При этом HttpClient.post()
вернет Observable
напечатанного HttpResponse
, а не только данные JSON.
Рекомендовано к прочтению на Angular Официальные документы
Ваш код должен выглядеть так:
this.http.post<HttpResponse<User>>(`${this.url}/auth/login`, { email, password },
{ observe: 'response' }).subscribe(response => {
...
response.headers.keys(); // all header names
...
response.body // response content
...
});
ОБНОВЛЕНО
или внутри service method
, который будет извлекать только модель User
, но будет что-то делать с деталями ответа, например: (может иметь опечатки)
getUserFromLogin(email: string, password: string): Observable<User> {
return this.http.post<HttpResponse<User>>(`${this.url}/auth/login`,
{ email, password }, { observe: 'response' }).pipe(
map(response => {
...
response.headers.keys(); // all header names
...
response.body // response content
...
return response.body;
})
)
)