AngularJS在某些情况下忽略Set-Cookie标头

时间:2015-03-27 01:16:36

标签: angularjs cookies

基本上我的问题是使用带有角度的set-cookie标头(看起来即使将withCredentials设置为true也会被忽略)但是如果我向cookie发出相同的请求,这就是问题,但是如果我改变了路径吗? #39; t work。

实施例

POST http://localhost/app/api/oauth/ HTTP/1.1
[other headers and payload]

然后我得到答案:

HTTP/1.1 200 OK
Set-Cookie: ; expires=Wed, 31-Mar-2015 01:34:53 GMT

并发送访问资源的请求:

GET http://localhost/app/api/oauth/test HTTP/1.1
Cookie:blah=something;

直到现在evething还可以,但是当我尝试访问我服务器上的其他资源时:

GET http://localhost/app/api/othercontroller/test HTTP/1.1
只有当我在创建cookie的路径之后访问某个路径时,才会再发送cookie。

这就是网络监视器向我展示的内容。但是我无法在资源选项卡(在cookie区域)上看到这个问题。

注意:我已经尝试过使用安全cookie,并且不使用仅限http的cookie以及两者之间的所有组合。我尝试不使用CORS或启用CORS,但任何人都可以工作。

任何人都知道可以做什么? 谢谢你的时间和耐心。

1 个答案:

答案 0 :(得分:1)

我在评论中粘贴了我的建议。

您的初始Cookie是在HTTP端点路径的响应中设置的,该路径比第二个请求更深。

Set-Cookie: ; Domain=foo.com; Path=/; expires=Wed, 31-Mar-2015 01:34:53 GMT

您可以通过在响应标头中指定Path参数来指定放置Cookie的位置,如上所示。