在本地测试web应用程序时遇到问题。我在请求响应中设置cookie(方法如下(:
const token = createToken(user._id);
res.cookie("jwt", token, { httpOnly: true, maxAge: maxAge, });
res.status(201).json({ user: user._id });
return res;
但我在React Client中执行以下请求时遇到了一个关于同域策略的错误:
axios.post(`${process.env.REACT_APP_API_URL}api/user/login`, {
email: email,
password: password,
},
{
withCredentials: true
})
.then((res) => {
if (res.data.errors) {
//Show errors
}
})
.catch((err) => {
console.log(err);
});
我试图用参数withCredentials执行它:false
请求有效,但cookie未存储但我已经在回应我的请求时设置了Cookie
这是我的CORS选项:
const corsOptions = {
origin: process.env.CLIENT_URL,
credentials: true,
allowedHeaders: ["sessionId", "Content-Type"],
exposedHeaders: ["sessionId"],
methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
preflightContinue: false
};
我通过以下方式重新部署我的cors选项:
const corsOptions = {origin: process.env.CLIENT_URL,credentials: true};
并添加:
app.options('*', cors(corsOptions));
现在它在上工作