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

AngularJS ignoring Set-Cookie header in certain cases

基本上我的问题是将 set-cookie header 与 angular 一起使用(看起来即使将 withCredentials 设置为 true 他也被忽略了)但是如果我做同样的事情,这就是问题请求 cookie,但如果我更改路径,则不起作用。

示例;

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;

到目前为止一切正常,但是当我尝试访问我服务器上的其他资源时:

GET http://localhost/app/api/othercontroller/test HTTP/1.1

cookie 不再发送,只有当我在创建 cookie 的路径之后访问某个路径时。

这就是网络监视器显示给我的内容。但是我在资源选项卡(在 cookie 区域)上看不到那个 blah coockie。

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

有人知道可以是什么吗? 感谢您的时间和耐心。

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

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

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

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