在处理错误响应时获取完整的http标头存在问题。
事实问题序言:
在发生错误(在我们的情况下为X-Message
)时,或者在一切正常但存在一些包含有用信息的附加消息时,Api添加新标头参数。
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句柄中需要完整的标头列表时,您是否遇到了某些问题?
感谢!