【发布时间】:2019-06-01 04:52:27
【问题描述】:
我正在使用 Angular 6 的 Spring Security。当我使用基本身份验证服务器登录时,会发送一个带有响应的 cookie JessionID。我想将此 cookie 与其他请求一起发送以进行身份验证,但它给了我错误 Refused to set unsafe header 'Cookie' 。当我在标头中使用相同的 cookie 从邮递员访问相同的端点时,它可以工作。
下面是angular中的方法:
注意:目前我正在手动添加标题。
private heroesUrl = 'http://localhost:8080/hi';
header = new HttpHeaders().set("Cookie", "JSESSIONID=A2A75EC9A3E1172D60060C6E708549B5");
getMessage() :Observable<Message>{
return this.http.get<Message>(this.heroesUrl,{headers:this.header});
}
我使用基本身份验证登录时得到的响应
【问题讨论】:
-
我遇到了同样的问题,但情况不同。您不能使用代码中的请求手动设置 Cookie 标头。此外,如果 cookie 是 httponly,则代码无法访问它。但是,当我使用邮递员提出请求时,它起作用了。就我而言,我通过将我的应用程序设置在与服务器相同的端口上来规避了这个问题。如果请求来自同一来源,则会自动发送 cookie。
标签: java angular spring-boot cookies spring-security