【问题标题】:Express JS cors middleware unable to store cookies on browserExpress JS cors 中间件无法在浏览器上存储 cookie
【发布时间】:2021-09-10 21:36:54
【问题描述】:

我希望 react 应用程序能够将 cookie 存储在浏览器的 cookie 存储中。

我需要在 axios 的标头中发送 withCredentials: true 。

axios.defaults.withCredentials = true
export const login = (email, password) => {
  return axios({
    method: "POST",
    url: "https://api.*****.**/login",
    data: {
      email: email,
      password: password,
    },
  });
};

在后端我使用 ExpressJS cors 中间件

const cors = require("cors");
const corsOptions = {
    credentials: true,
};
app.use(cors(corsOptions));

在使用 axios 从 react 发出登录请求时,我收到错误:

Access to XMLHttpRequest at 'https://api.*****.**/login' from origin 'http://localhost:3000' has been blocked by CORS policy: 
Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.

【问题讨论】:

  • 您是否尝试在服务器端添加源?这是文档reference
  • @LuisPauloPinto origin 它默认为“*”
  • 是的,但是尝试设置明确的origin: 'http://localhost:3000' 看看你是否继续得到它。这是一个开始。
  • @LuisPauloPinto 在来到 stackoverflow 询问之前已经尝试过了

标签: node.js reactjs express axios cors


【解决方案1】:

来自res.cookie('name', 'tobi', { domain: '.example.com', path: '/admin', secure: true }) 删除选项中的域

【讨论】:

    猜你喜欢
    • 2019-11-04
    • 2014-09-18
    • 2021-10-13
    • 2021-06-07
    • 2021-06-29
    • 2021-06-04
    • 2013-07-04
    • 2021-07-11
    • 2016-09-13
    相关资源
    最近更新 更多