我相信我正在正确设置Express应用程序的CORS设置,但我的请求仍然失败。
Express Cors设置:
app.use(
cors({
origin: ["localhost"]
})
);
app.options("*", cors()); // include before other routes
也尝试过
app.use(
cors()
);
app.options("*", cors()); // include before other routes
请求:
fetch(`localhost:5000/charge`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: (
JSON.stringify({
stripeToken: token.id,
chargeAmount: Math.round(100 * this.state.donationAmount) // Needs to be an integer in cents
})
)
})
.then(res => {
return res.text();
})
.then(txt => {
console.log(txt);
})
浏览器错误:
通过CORS策略阻止从原点“ http://localhost:5000/charge”到“ http://localhost:3000”的访存:所请求的资源上没有“ Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”以在禁用CORS的情况下获取资源。
有什么想法在这里失败了吗?我需要回复,因此no-cors
对我不起作用。
答案 0 :(得分:0)
尝试添加前端的完整网址,并添加如下方法:
app.use(cors({
origin: ['http://localhost:5000'],
methods: ['GET', 'POST', 'PUT', 'DELETE'],
credentials: true // enable set cookie
}));
答案 1 :(得分:0)
起源只是一个字符串,而不是RegEx。正则表达式必须这样定义:os.listdir