我对angular还是陌生的,所以这里是这种情况:有一个后端应用程序正在向Angular 5上的前端应用程序发送一些头信息,所以我需要在我的着陆页上获取这些头信息。 。 我正在使用拦截器,这里是代码
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log('Before sending data');
console.log('Request : ', req);
console.log('Headers are');
console.log('USER: ' + req.headers.get('USER'));
请提出任何解决方案。 预先感谢。
答案 0 :(得分:1)
您是否从服务器端公开了X令牌?使用“访问控制公开标头”。因为并非所有标头都允许从客户端访问,所以您需要从服务器端公开它们
同样在您的前端,您可以使用新的HTTP模块,使用{observe:'response'}之类的方式获得完整的响应
http
.get<any>('url', {observe: 'response'})
.subscribe(resp => {
console.log(resp.headers.get('X-Token'));
});
答案 1 :(得分:0)
您可以直接在interceptor
尝试这样的事情
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).pipe(
tap((event) => {
if (event instanceof HttpResponse) {
console.log(event.headers);
}
})
);
}
确保您从响应Access-Control-Expose-Headers
的标题中公开了标题
希望这会有所帮助-编码愉快:)