如何通过CORS传递cookie?

2023-12-22

我有一个项目,使用 Axios 从客户端发送 HTTP 请求

axios.create({
    baseURL: `http://localhost:8081/`,
    withCredentials: true
  })

我想这允许 cookie - 我确信它会在您提出请求之前显示在浏览器中 - 与请求一起发送。

问题发生在后端,当日志中显示以下错误时:

对预检请求的响应未通过访问控制检查: 响应中“Access-Control-Allow-Origin”标头的值必须 当请求的凭据模式为时,不能是通配符“*” '包括'。起源 'http://本地主机:8080 http://localhost:8080' 因此不允许 使用权。发起请求的凭证模式 XMLHttpRequest 由 withCredentials 属性控制。

我试过这个:

app.use(cors({
  //origin : to be set later
  credentials: true,
}))

而这个:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
  res.header("Access-Control-Allow-Credentials", true);
  next();
});

但似乎都不起作用。

编辑 - 这是未来访客的答案

在评论参与者的帮助下,我发现我必须设置原始值:

app.use(cors({
  origin : "http://localhost:8080",
  credentials: true,
}))

我知道对于OP来说已经太晚了,但是对于那些不断来到这里的人来说 - 对我有帮助的是:

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

source: https://expressjs.com/en/resources/middleware/cors.html https://expressjs.com/en/resources/middleware/cors.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过CORS传递cookie? 的相关文章

随机推荐