在 chrome 中显示时没有 Set-Cookie 标头
Posted
技术标签:
【中文标题】在 chrome 中显示时没有 Set-Cookie 标头【英文标题】:No Set-Cookie header in showing in chrome 【发布时间】:2019-08-08 05:29:56 【问题描述】:我正在使用我的 react 应用程序中的 axios 进行 api 调用。 api 调用返回一个 Set-Cookie 标头,该标头在 Firefox 中似乎工作正常。但是,我根本没有 Chrome 中的 Set-Cookie 标头。我试着用谷歌搜索这个问题,但找不到任何具体的答案。任何有关这方面的帮助将不胜感激。
浏览器中的网址 http://localhost:3000/checkout/5423568515 api调用的网址 http://localhost:8087/session/loginByUserName
火狐 Image showing Set-Cookie header in firefox
甚至在浏览器中设置了 Cookie Image showing cookies are set
Chrome:未显示 Set-Cookie 标头且未设置 cookie Chrome with no Set-Cookie header
【问题讨论】:
我也遇到了这个问题。你有没有弄清楚问题是什么? 我也有类似的问题。但它不会始终如一地发生。如果我重新启动机器,它会工作一段时间,然后似乎就停止了。如果有任何区别,也可以在服务器上使用 ASP.NET 核心。 我也遇到了这个令人沮丧的问题。 API 设置了一个识别所需的 nonce cookie,我可以清楚地看到在 firefox 上设置的 cookie,它没有出现在 Chrome 中,但在两个浏览器中似乎都在发送这个 cookie。有了这个以及 Chrome 中的断点混乱,我非常接近离开 Chrome 进行开发 【参考方案1】:ajax 库永远不会从响应中删除标头。您在网络选项卡中看到的实际上是服务器响应的内容。我怀疑服务器没有发回该标头,因为 cookie 已经设置。尝试清除相关的 cookie。
以下代码将使cookieName
中指定的cookie 失效。通过将到期日期设置为过去。
document.cookie = cookieName + "=something; expires=Thu, 18 Dec 2013 12:00:00 UTC;"
【讨论】:
尝试了这种新方法来设置 cookie 标头以删除旧 cookie 和创建新 cookie,但现在运气不错。这些 cookie 是 httpOnly cookie,我认为只有在尝试在浏览器中访问它们时才能修改 httpOnly。设置cookie WC_AUTHENTICATION_1568784168=1…8sMKVHr8%3D;路径=/; HttpOnly 设置cookie WC_USERACTIVITY_1568784168=156…ktwrA%3D%3D;路径=/; HttpOnly 设置cookie WC_USERACTIVITY_1569130113=; P…=1970 年 1 月 1 日星期四 00:00:00 GMT 设置cookie WC_AUTHENTICATION_1569130113=;…=1970 年 1 月 1 日星期四 00:00:00 GMT 我明白了。尝试使用隐身窗口并查看 cookie 是否已发送 这是不正确的。使用 chrome://net-export 转储网络日志并与网络选项卡中的响应标头进行比较,显示此类问题的差异 可能不会回答 OP 的问题,但 document.cookie 对我来说真的很有用。【参考方案2】:如果您在开发环境中,请尝试将 cookie 域设置为“127.0.0.1”。同样在请求和响应中都将凭据设置为 true。
【讨论】:
【参考方案3】:我怀疑这是 Chrome 中的一个错误(或考虑不周的“功能”)。您可以验证 cookie 是否由事务的capturing a NetLog 设置。这使您可以访问每个传入和传出请求的准确、未修改的标头,包括(如果您启用相关选项)cookie 和其他凭据。
我目前正在从另一端遇到这个问题——Chrome 正在发送会话 cookie,但未在“网络”选项卡中显示相关标题——并计划组合一个小测试用例以向其跟踪器提交错误.
【讨论】:
以上是关于在 chrome 中显示时没有 Set-Cookie 标头的主要内容,如果未能解决你的问题,请参考以下文章
Chrome 84 检查元素,发现没有像以前那样以黄色突出显示的结果
在 IE/Chrome/Firefox 中打印预览(或打印)时不显示图像