Существует проблема с получением полных заголовков http при обработке ответа об ошибке.
Предисловие проблемы в фактах:
Api добавляет новый параметр заголовка когда что-то не так (в нашем случае это X-Message
), или когда все в порядке, но существует дополнительное сообщение с полезными деталями.
response.headers['X-Message'] = 'A user has no permissions to approve smth'
response.headers['X-Message'] = 'You've approved smth successfully, but...'
На стороне клиента (приложение Angular) этообрабатывается перехватчиком:
return next.handle(request)
.pipe(
map((event: HttpEvent<any>) => {
if (event instanceof HttpResponse) {
this.notificationHandler.handle(event);
}
return event;
}),
catchError((error: HttpErrorResponse) => {
/*
Problem is here!!!
I need to get the response headers to
read 'X-Message', but it's unavailable.
*/
this.notificationHandler.handle(error);
return throwError(error);
});
В чем проблема? Когда response.status
равен 200
все в порядке.Я могу получить и показать соответствующее поле заголовка.НО Когда статус 400
или более, необходимый заголовок недоступен
Были ли у вас какие-то проблемы, когда полный список заголовков необходим в дескрипторе `` catchError```?
Спасибо!