我有一个使用Axios从客户端发送HTTP请求的项目
axios.create({
baseURL: `http://localhost:8081/`,
withCredentials: true
})
我想这允许cookie--我确信在你请求之前它就显示在浏览器中了--与请求一起发送。
当日志中显示以下错误时,问题发生在后端:
对预检请求的响应未通过访问控制检查:当要求的证明数据模式为'include'时,回应中的'Access-Control-Allow-Origin'信头值不得为万用字符'*'。因此不允许来源'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();
});
但似乎都不起作用。
EDIT -以下是未来访问者的答案
在参与者评论的帮助下,我发现我必须设置原点值:
app.use(cors({
origin : "http://localhost:8080",
credentials: true,
}))
2条答案
按热度按时间brccelvz1#
我知道现在对OP来说已经太晚了,但是对于那些不断来到这里的人来说--帮助我的是:
来源:https://expressjs.com/en/resources/middleware/cors.html
mtb9vblg2#
我遇到了这个问题,我通过将头文件
"Access-Control-Allow-Origin"
设置为我的前端的URL而不是“*”来修复它更多详情:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials