对于节点项目,我使用的是cors。有两个选项可用,一个是cors middleware,另一个正在发送标头,例如:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", CLIENT_ORIGIN);
res.header(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept"
);
res.header("Access-Control-Allow-Methods", "GET,POST,PUT,PATCH,DELETE");
res.header("Access-Control-Allow-Credentials", true);
if (req.method === "OPTIONS") {
return res.sendStatus(204);
}
next();
});
使用两者中的一个有区别吗?一个会用另一个吗?我需要两个吗?
答案 0 :(得分:0)
CORS中间件是Express.js框架的中间件,您无需同时使用两者。 如果您使用的是Express.js,那么我建议您最好使用expressjs/cors中间件,而不要像问题中提到的那样发送标头。
答案 1 :(得分:0)
我将使用您列出的npm cors软件包来实现您的目标。使用此cors库时,无需手动设置标头,除非您要设置cors软件包未设置的其他标头。
我已将此软件包专门用于白名单功能,其中您可以包含要允许其向API(https://www.npmjs.com/package/cors#configuring-cors-w-dynamic-origin)发出请求的域的列表。