首页 > 解决方案 > 带有 Set-Cookie Header 的 Safari/Chrome 的开发者控制台中不显示 Cookie,但在查看服务器日志时存在

问题描述

我正在使用来自 python 后端的“Set-Cookie”标头响应为我的 Web 应用程序存储 cookie。

在此处输入图像描述

这是我在客户端对函数的 ajax 调用: 在此处输入图像描述

在 Chrome 和 Safari 的开发人员工具中,当我查找 cookie 时,cookie 没有出现。

在 Chrome 上,Set-Cookie 甚至不会出现在网络调用的响应标头中。 在 Safari 中,Set-Cookie 响应标头出现并显示在请求/响应 cookie 下, 但是当我检查应用程序的 cookie 时,什么也没有显示。 在此处输入图像描述 在此处输入图像描述在此处输入图像描述 在此处输入图像描述在此处输入图像描述

此外,Safari 中显示的 cookie 数据不正确:它显示了不正确的过期日期和 httpOnly/secure 两者都应该是正确的。

cookie 似乎不存在,但是当我登录服务器时,我清楚地看到 cookie 存在并且它们出现 在此处输入图像描述 (野生动物园也显示它们在请求/响应标头中来回显示)这意味着 cookie 被正确存储并且在标头中的每次调用后发送回服务器。我之前尝试将 httpOnly 设置为 false 并将 secure 设置为 false,但即便如此,cookie 也表现出相同的行为。

这些 cookie 仍处于两种开发人员工具的雷达之下。如何在开发者工具中正确查看浏览器上的 cookie?这个问题可能是什么?

标签: javascriptajaxcookiesgoogle-chrome-devtoolssafari-web-inspector

解决方案


您是否尝试过打开服务器 https://*.amazonaws.com 的选项卡并在那里检查?

cookie 将设置在服务器的域上,但您不会在本地服务器的 cookie 存储中看到它。原因是所有网络存储都受同源策略绑定,您的文档只能从自己的域访问存储,服务器只能为其域设置 cookie。

这里的理由是,如果我向您发送了一个流氓文档的链接,即使它们可以从 JS 访问,它也无法泄露您的 SO cookie,向流氓服务器发送请求也不能覆盖 SO 上的 cookie。


推荐阅读