cookies - 在 set-cookie 响应标头中接收到非 httpOnly cookie,但 js 无法访问
问题描述
我的后端部署在 heroku 上。我的前端仍在本地。我正在设置 2 个 cookie,一个是 httpOnly,另一个是非 httpOnly。问题是后端无法在我的本地设置 cookie。我尝试使用本地后端。我也将 sameSite cookie 属性设置为 None 和 Secure 标志。当我从 youtube 或 StackOverflow 页面上的控制台调用 API 时(只是为了使其跨域),我可以看到 set-cookie 标头在响应中包含这 2 个 cookie。我正在使用 cookie 扩展 EditThisCookie。我既无法在扩展程序中看到这些 cookie,也无法通过 js 访问它们。我知道 httpOnly cookie 无论如何都无法通过 js 访问,但即使是非 httpOnly 也无法访问。但是在 chrome 开发工具的应用程序选项卡中,我可以看到两个 cookie。此外,httpOnly cookie 应该在后续调用中传输,这不会发生以及如果 cookie 尚未真正设置。我也试过设置这些响应头
Response.Headers.Add("Access-Control-Allow-Origin", "https://www.stackoverflow.com/");
Response.Headers.Add("Access-Control-Allow-Credentials", "true");
Response.Headers.Add("Access-Control-Expose-Headers", "Set-Cookie");
这是在 dotnet 核心中。如何访问后端发送的 cookie?我只想在 HTTP 响应中发送 cookie。这基本上是用于登录 API。我需要在登录 API 的发布请求中添加一些内容吗?我还尝试将 cookie 的域属性设置为“StackOverflow.com”,但没有奏效。这反而给了一个错误。“这种通过 set-cookie 标头设置 cookie 的尝试被阻止,因为它的域属性对于当前主机 URL 无效”此外,这在前端和后端在不同端口上的本地工作时都可以正常工作
解决方案
推荐阅读
- android - RecyclerView 回到位置 0
- angular - 如何使复选框的行为类似于角度 6 中的单选按钮?
- r - 在 R 中使用 ggplot 将参考线添加到条形图
- c# - 从 html 获取 C# 中的子字符串?
- javascript - 如何使谷歌音译发生在keyup事件而不是空格键点击
- javascript - AngularJS:更改其他 div 中的值,正在更改所有 div 中的数据
- express - {"errors":[{"message":"必须提供查询字符串。"}]}
- node.js - 使用 cloudinary 上传多个图像
- yii2 - 如何创建 Yii2 Html 表单和操作
- node.js - 为高图表表示格式化数据