【问题标题】:Google Chrome does not attach Cookies for CORS request?谷歌浏览器不为 CORS 请求附加 Cookie?
【发布时间】:2020-02-29 17:11:20
【问题描述】:

我正在尝试使用凭据(附加 Cookie)发出 CORS 请求,但 Chrome 并未将 Cookie 附加到我的请求中。我已将 cookie 设置为现有页面的子域,我可以观察到它已从 Cookie 管理器成功设置。

Chrome 78 版(最新版)没有这个问题。但是对于以前的版本,我有这个问题(我检查了75和77)。以及我对其他主要浏览器也没有任何问题。他们还可以毫无问题地附加 cookie。(我已经用 Firefox、IE、Opera 和 Edge 测试了我的代码)

这是我从外部服务端设置 Cookie 的方式。

res.setHeader('Set-Cookie','cdn-token=exp3header_same-site-none; domain=.local.com; path=/; SameSite=None;');

完整的示例代码库可以在以下链接中找到:

外部服务 - https://github.com/bhanukayapa/cors-backend.git

前端应用-https://github.com/bhanukayapa/cors-angular-frontend.git

谁能解释一下这个问题的根本原因?我还检查了 Chrome 发行说明。我找不到与此相关的错误修复或改进。提前致谢。

【问题讨论】:

  • 请包含您用于发出请求的代码,或者更好的是,链接到演示此问题的页面。您是否通过 HTTPS 进行测试?
  • 感谢@rowan_m 的回复。不幸的是,我将提供您请求的代码段和一个简单的应用程序的 Github 存储库来演示这个问题。是的,我使用的是 HTTPS。
  • @rowan_m 我已经用请求的信息更新了我的问题。你能看看吗?

标签: google-chrome cookies same-origin-policy google-contacts-api samesite


【解决方案1】:

如果设置SameSite=None,则必须与Secure 配对。例如

res.setHeader('Set-Cookie','cdn-token=exp3header_same-site-none; domain=.local.com; path=/; SameSite=None; Secure');

【讨论】:

  • 还有可能对吗?根据这个链接 => chromestatus.com/feature/5633521622188032 它说限制只会在 Chrome 版本 80 之后存在。无论如何,我在我的真实代码中也添加了安全标志。还是行不通。还有更多建议@rowan_m 吗?无论如何感谢您的回复。
猜你喜欢
  • 2012-07-15
  • 2018-09-05
  • 1970-01-01
  • 2022-06-13
  • 1970-01-01
  • 2015-03-09
  • 1970-01-01
  • 2011-08-16
  • 2011-01-31
相关资源
最近更新 更多