После этого просто назначьте APIErrorResponse вместо HttpErrorResponse своему объекту ошибки и получите доступ к пользовательской ошибке вашего сервера, как указано выше: error.error
я есть HttpInterceptor, чтобы ловить ошибки и отображать их в модальном режиме. Помимо кода ошибки и сообщения, я также хотел бы показать тело ответа, которое на самом деле содержит более точное описание ошибки (например, при внутренней ошибке 500 на сервере). Как я могу добиться этого в угловых? (Я использую версию 4.3.6.)
Я уже посмотрел на связанные вопросы, но такие ответы, как HttpErrorResponse._body или аналогичные, не работают для меня. Кроме того, при проверке ответа об ошибке в консоли для HttpErrorResponse.error устанавливается значение null.
Вот как выглядит мой перехватчик:
@Injectable()
export class HttpErrorInterceptor implements HttpInterceptor {
public constructor(private httpErrorService: HttpErrorService) { }
public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).do(event => {
}, (error: HttpErrorResponse) => {
console.log('HTTPERROR INTERCEPTOR');
console.log(error);
if (error.status >= 400) {
this.httpErrorService.onError(error);
}
});
}
}