У вас проблема при установке HttpOptions
. Это класс, имеющий свойство HttpHeaders
. Но вы применяете это неправильно.
Вам нужно изменить
this.http.post(...., this.payload, this.header)
на
const httpHeaders = new HttpHeaders().set('Content-Type', 'application/json');
this.http.post(...., this.payload, {headers: httpHeaders})
Почему вы получаете эту ошибку?
HttpOptions
также имеет свойство observe
. Значение по умолчанию - body
, но вы можете установить его на response
. Когда вы устанавливаете его на response
, Angular дает ответ полностью (с кодом состояния, заголовками ответа, телом и т. Д. c.)
Я думаю, вы нарушили его, реализовав HttpOptions
неправильно.
ОБНОВЛЕНИЕ
Если вы хотите достичь response headers
, вам нужно добавить observe: 'response'
к HttpOptions
как
const httpHeaders = new HttpHeaders().set('Content-Type', 'application/json');
this.http.post(...., this.payload, { headers: httpHeaders, observe: 'response' }).pipe(map(response => {
const user = response.body;
const token = response.headers.get('X-Subject-Token');
// store user details and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('token', token);
localStorage.setItem('currentUser', JSON.stringify(user));
this.currentUserSubject.next(user);
return user;
}));