我有启用Spring-Boot JWT的REST API。身份验证API /登录确实按预期提供所有CORS和AUTH标头。用卷毛和邮差测试。 我的客户端代码在Angular 5中。成功通过身份验证后,我可以看到 -
注意:后端端,CORS和允许标头已启用,因此Chrome网络流量正常。
在POST调用期间在HttpClient中添加了必需的选项。
{
responseType: 'text',
observe: 'response'
}
尝试了所有可能的responseType。 默认情况下,JSON会抛出Parse Exceptions。 这意味着默认的Spring-Boot JWTS / login API不返回JSON Output但只返回HttpResponse。
请帮忙......
Angular Code -
login(payload: any): Observable < any > {
return this._http.post(this.loginEndPoint, payload, {
responseType: 'text',
observe: 'response'
})
/* .map((response: HttpResponse<string>) => {
console.log(response.headers.get('Authorization'));
return response;
}); */
.pipe(
tap(response => {
console.log(response.headers.get('Authorization'));
return response;
}),
catchError(this.handleError('getHeroes', []))
);
}
答案 0 :(得分:0)
-Dfile.encoding=UTF8
运算符不会在可观察流中发出值。因此,返回其中的内容将不会做任何事情。它用于执行记录等副作用。要使用tap
运算符
map
注意:这只会将标题返回给订阅的组件。
答案 1 :(得分:0)
您应该在后端添加一行: response.addHeader(“ access-control-expose-headers”,“授权”);