我正在使用来自 python 后端的“Set-Cookie” header 响应为我的 Web 应用程序存储 cookie。
这是我在客户端对函数的 ajax 调用:
在 Chrome 和 Safari 的开发人员工具中,当我查找 cookie 时,cookie 没有出现。
在 Chrome 上,Set-Cookie 甚至不会出现在网络调用的响应 header 中。
在 Safari 中,Set-Cookie 响应 header 出现并显示在请求/响应 cookie 下,
但是当我检查应用程序的 cookie 时,什么也没有出现。
此外,Safari 中显示的 cookie 数据不正确:它显示了不正确的过期日期和 httpOnly/secure 两者都应该是正确的。
cookie 似乎不存在,但是当我登录服务器时,我清楚地看到 cookie 存在并且它们出现
(也 safari 显示它们在请求/响应 header 中来回移动)这意味着 cookie 被正确存储并在 header 中的每次调用后发送回服务器。我之前尝试将 httpOnly 设置为 false 并将 secure 设置为 false,但即便如此,cookie 也表现出相同的行为。
这些 cookie 仍处于两种开发人员工具的雷达之下。如何在开发者工具中正确查看浏览器上的 cookie?这个问题可能是什么?
最佳答案
您是否尝试过打开服务器 https://*.amazonaws.com 的选项卡并在那里检查?
cookie 将设置在服务器的域上,但您不会在本地服务器的 cookie 存储中看到它。原因是所有网络存储都受同源策略绑定(bind),您的文档只能从自己的域访问存储,服务器只能为其域设置 cookie。
这里的理由是,如果我向您发送了一个流氓文档的链接,即使它们可以从 JS 访问,它也无法泄露您的 SO cookie,向流氓服务器发送请求也不能覆盖 SO 上的 cookie。
关于javascript - 带有 Set-Cookie Header 的 Safari/Chrome 的开发者控制台中不显示 Cookie,但在查看服务器日志时存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53495230/