Express JS cors 中间件无法在浏览器上存储 cookie
Posted
技术标签:
【中文标题】Express JS cors 中间件无法在浏览器上存储 cookie【英文标题】:Express JS cors middleware unable to store cookies on browser 【发布时间】: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 在来到 *** 询问之前已经尝试过了
【参考方案1】:
来自res.cookie('name', 'tobi', domain: '.example.com', path: '/admin', secure: true )
删除选项中的域
【讨论】:
以上是关于Express JS cors 中间件无法在浏览器上存储 cookie的主要内容,如果未能解决你的问题,请参考以下文章
使用 cors、express 和 google api 的 Node.js 服务器应用程序在 Azure 部署后无法正常工作