【问题标题】:Axios not receiving cookies in Heroku deployed MERN applicationAxios 未在 Heroku 部署的 MERN 应用程序中接收 cookie
【发布时间】:2021-04-06 14:30:26
【问题描述】:

我在 Heroku 上部署了一个 Node/Express 服务器,我用它来发送 httpOnly cookie 来存储 JWT。我一直在使用 Axios 设置 cookie,同时将我的 React 应用程序托管在端口 3000 上,并将 Express 服务器托管在端口 5000 上。

React 应用中的 Axios 配置

const myAxios = axios.create({
  withCredentials: true,
  baseURL: "http://localhost:5000/",
});

Express App的index.js

app.use(cors({ origin: true, credentials: true }));

在我将我的应用程序部署到 Heroku 并将我的 Axios 配置切换为使用 baseURL:http://app-name.herokuapp.com 之前,这一直运行良好。我现在不再接收 cookie(对于 GET 和 POST 请求)。如果我直接在 Chrome 或 Postman 中访问 http://app-name.herokuapp.com/get-cookie-endpoint,我仍然会得到 cookie。但是,当我尝试从 localhost:3000 上的 React 应用程序调用 myAxios.get('/get-cookie-endpoint) 时,我不再收到 cookie。我检查了 XHR 请求,但仍然收到 Set-Cookie 响应标头。

有什么想法吗?我尝试了许多不同的 Axios 和 CORS 设置,但似乎没有任何效果。

【问题讨论】:

    标签: node.js express heroku cookies axios


    【解决方案1】:

    尝试在 cookie 对象中添加sameSite = 'none';。我遇到了这个问题,它对我有用。

    【讨论】:

    • 欢迎来到 StackOverflow。尝试详细说明您的答案。它是如何工作的?为什么你认为这可以解决 OP 的问题?
    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 2021-10-29
    • 2020-05-30
    • 1970-01-01
    • 2021-09-14
    • 2020-04-06
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多