我有两个 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 请求实际上正在执行。我不明白为什么。是否没有默认设置来防止跨域请求?我该如何进行这些设置。
任何帮助将不胜感激!
谢谢!
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);
}
}));