在 ExpressJS 中禁用 CORS

问题描述 投票:0回答:1

我有两个 NodeJS/express 应用程序。为简单起见,我会说一个托管在 www.example1.com 上,另一个托管在 www.example2.com 上。我想从 www.example2.com 向 wwww.example1.com 发送 POST 请求。我使用以下代码执行此操作:

<form action="www.example1.com" method="POST">
    <input type="text" name="name"></input>
    <input type="submit" value="Submit"></input>
</form>

我只希望它接受来自 www.example1.com 的请求。我该怎么做呢?另外,目前,当我执行此 POST 请求时,POST 请求实际上正在执行。我不明白为什么。是否没有默认设置来防止跨域请求?我该如何进行这些设置。

任何帮助将不胜感激!

谢谢!

node.js express post cross-domain
1个回答
2
投票

cors 中间件包是执行此操作的标准方法

https://www.npmjs.com/package/cors

例如:

const allowedOrigins = ['www.example1.com', 'www.example2.com'];
app.use(cors({
  origin: function(origin, callback){
    if (!origin) {
      return callback(null, true);
    }

    if (allowedOrigins.includes(origin)) {
      const msg = 'The CORS policy for this site does not allow access from the specified Origin.';
      return callback(new Error(msg), false);
    }
    return callback(null, true);
  }

}));
© www.soinside.com 2019 - 2024. All rights reserved.