Как получить все HTTP-отклики в угловом перехватчике, когда API отвечает об ошибке - PullRequest
0 голосов
/ 28 марта 2019

Существует проблема с получением полных заголовков 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```?

Спасибо!

1 Ответ

0 голосов
/ 28 марта 2019

Angular имеет встроенный класс обработчика ошибок. Это ловит все ошибки. https://angular.io/api/core/ErrorHandler

...