浏览器不保留响应中的 cookie header

Browser not keeping cookie from response header

我正在尝试做一些简单易行的事情:设置一个 cookie!但是浏览器(Chrome 和 Safari 测试)只是忽略它们。 所以响应 headers 看起来像:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:*
Connection:keep-alive
Content-Encoding:gzip
Content-Type:application/json; charset=utf-8
Date:Wed, 19 Jul 2017 04:51:51 GMT
Server:nginx
Set-Cookie:UserAuth=<some jwt>; Path=/; Domain=10.10.1.110; Expires=Wed, 19 Jul 2017 12:51:51 GMT; HttpOnly; Secure
Transfer-Encoding:chunked
Vary:Origin

请求确实包括withCredentials=true。 但是 Chrome 中的 cookies 部分是空的。我试过完全删除域,删除路径,我能想到的所有配置,但浏览器就是不玩。

我错过了什么?

您的 cookie 显示 仅限HTTP; 安全;

在生成 cookie 时使用 HttpOnly 标志有助于降低客户端脚本访问受保护 cookie 的风险

安全标志的目的是防止 cookie 因以明文形式传输 cookie 而被未授权方观察到。 通过设置安全标志,浏览器将阻止通过未加密的通道传输 cookie。

如果通过带有 TLS 层安全标志的 HTTP 传输,Cookie 将被中断。 因此,请检查您的偏好并相应地设置 cookie 的配置。

因此原来的请求 'withCredentials=true' 作为请求 header 而不是在 XMlHttpRequest 配置 object 上设置。