我正在尝试将浏览器的本机访存与节点Express跨域一起使用,并且遇到了一些奇怪的行为。我有一个在端口4000上运行的前端服务器,在端口5000上运行的服务器。我将CORS配置为Express这样。 (尝试使用CORS库,但效果不佳)
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Credentials", 'true');
if (req.method === "OPTIONS") {
res.status(200).send()
} else {
next();
}
});
因此,我尝试使用以下代码获取结果:
export default {
getUserInfo: (callback) => {
let getUser = new Promise((resolve, reject) => {
fetch('//localhost:5000/account/users/me', {
credentials: "include",
})
.then((response) => {
if (response.status == 200) {
user = response.json();
resolve();
} else {
reject()
}
})
})
return getUser;
},
login: (data) => {
}
}
将凭据放在“ include”上后,我立即收到CORS错误。但是CORS标头似乎可以正常工作:
答案 0 :(得分:0)
事实证明,您不能使用凭据进行通配符。您需要指定要授予访问权限的URL。