【发布时间】:2021-04-04 13:18:59
【问题描述】:
我已经用谷歌搜索了一段时间,但仍然没有运气。我在 localhost:3000 使用 nodeJS + express 运行 REST api。在同一台计算机上,我在 127.0.0.1:3001 上运行前端。从我的后端 API 我收到了 set-cookie 标头。但我的浏览器并未将其视为 cookie。因此,应用程序 -> Cookies -> http://127.0.0.1:3001 为空。我尝试过 chrome、safari 和 firefox。在 chrome 中,我尝试关闭这些标志:
- SameSite 默认 cookie
- 启用删除 SameSite Cookie 而无需
- SameSite 必须是安全的
我从谷歌尝试过的建议是:
- 使用 127.0.0.1 代替 localhost
- 在 chrome 中禁用标志
- 改用火狐
- 在 axios 请求中包含凭据:withCredentials: true
- 在 cookie 选项下没有设置域
当我部署到生产环境时,一切都按预期工作。似乎有很多人遇到这个问题,但我找到的解决方案都没有奏效。
响应头:
【问题讨论】:
-
如果 cookie 是由 localhost:3000 发出的,那么您将不会在 localhost:3001 下找到它。这是完全正常的和预期的。
标签: node.js express cookies axios setcookie