未在本地开发 Express REST API + react SPA 中设置 Cookie

问题描述

我已经用谷歌搜索了一段时间,但仍然没有运气。我正在 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 Cookies
  • SameSite 必须是安全的

我从谷歌尝试过的建议是:

  • 使用 127.0.0.1 而不是 localhost
  • 禁用 chrome 中的标志
  • 改用火狐
  • 在 axios 请求中包含凭据:withCredentials: true
  • 在 cookie 选项下没有设置域

当我部署到生产环境时,一切都按预期工作。似乎有很多人有这个问题,但我找到的解决方案都没有奏效。

响应头:

enter image description here

解决方法

原来在域下我包含了端口。简单地使用域:“localhost”就可以了。起初我有域:“localhost:3001”