2017-10-20 145 views
0

我有一台服务器(Spring Boot),在发生成功认证时向我发送带有JWT的授权。所有这一切都很好。我可以看到授权标题正在Chromes Network标签中返回。但由于某种原因,当我尝试使用console.log以角度打印标题时,Authorization标题未显示出来。 header.get('Authorization')也不能正常工作。角度授权标头4

login(user) { 
this.http 
    .post(`${this.url}/login`, user) 
    .subscribe((h:Response) => { 
    console.log(h.headers.toJSON()); // Doesn't print Authorization header 
    console.log(h.headers.get('Authorization')); // prints null 
    //this.setToken(h.headers.get('Authorization')); 
    }); 
} 

在此先感谢!

+0

您的服务可能不会返回授权标头 – Aravind

+0

它正在返回授权标头。我可以在Chrome的网络标签中找到它,并且我使用邮递员对它进行了双重检查。 – Saurin

+1

'res.data.token'或'res.body.token'通常是你会得到一个jwt的帖子并返回一个帖子 –

回答

0

因此,在做了一些更多的研究之后,我遇到了这个帖子https://stackoverflow.com/a/43734000/7770219,它回答了上面的问题。我没有正确配置我的CorsFilters。这就是为什么前端(角度2+)无法访问持有我的JWT的授权令牌的原因。即使您能够在邮递员和Chromes Network选项卡中看到该令牌,但这并不意味着您的前端能够成功访问它。为此,请使用上面提供的链接为其提供访问权限。