首页 > 解决方案 > 当 nodejs 服务器不在本地主机上时未设置 Cookie

问题描述

我有一个 ReactJS 前端和一个 NodeJS 后端。前端从 NodeJS 调用登录 API,它返回一个带有 JWT 令牌的 cookie,该令牌将用于其他调用。我已经对其进行了测试,当前端和后端都在本地主机上运行时它可以工作。

我使用过邮递员并调用了相同的 API。一个在 localhost 上运行,一个在 AWS EC2 上运行。两者都返回相同的响应,但是,在 EC2 上运行的响应没有设置 cookie。两者都存在 set-cookie 标头。

我已经包含了 cors 配置。

var corsOptions = {
  origin: ['http://localhost:3001'],
  credentials: true
}
app.use(cors(corsOptions));

发现问题:

原来 safari 阻止了 cookie。iOS 上的 Chrome 也受此影响。关闭 safari 偏好设置上的“防止跨站点跟踪”选项解决了这个问题

标签: node.jsreactjsaxios

解决方案


尝试使用完整链接向 API 发送请求

axios.post('https://mysite/api/v1/login', {email,password,...})

推荐阅读