首页 > 解决方案 > cors 中间件与发送标头相同吗?

问题描述

对于节点项目,我使用的是 cors。有两种选择,一种是cors 中间件,另一种是发送标头,例如:

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();
});

两者使用有区别吗?一个人用另一个吗?我需要两者吗?

标签: javascriptnode.jscors

解决方案


我会使用您列出的 npm cors 包来实现您的目标。当你使用这个 cors 库时,你不需要手动设置头文件,除非你想设置 cors 包没有设置的额外头文件。

我已经将此包专门用于白名单功能,您可以在其中包含您希望允许向您的 API 发出请求的域列表(https://www.npmjs.com/package/cors#configuring-cors-w -动态原点)。


推荐阅读