如何在express.js中设置CORS的子域规则?

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

我有一个 Web 应用程序,前端为 React.js 应用程序,后端为使用express.js 的 Node.js 应用程序。我打算用尽可能少的钱来部署这些,因为这是一个个人项目,所以我使用 Netlify 来托管前端(免费),使用 Heroku 来托管后端(0.010 美元/小时)。

我当前在 Netlify 上的前端设置支持在不同 URL 上进行每个分支部署,并将分支作为前缀,如下所示:部署在

feature123
上的
myurl.netlify.com
将部署为
feature123--myurl.netlify.com

每个后端部署都需要资金,因此我不想为每个分支启动新的后端实例。相反,我只想部署一个后端,并让所有前端实例(每个分支有所不同)使用相同的后端实例。

问题: 我必须为后端设置 CORS,并且希望避免为前端的每个分支添加 CORS 规则。我正在寻找的是类似

*myurl.netlify.com
的规则,它涵盖了来自我的来源的任何来源。我如何实现这一目标?

node.js express cors
1个回答
0
投票

cors库的帮助下,您可以通过将正则表达式或函数传递给

origin
选项来实现此目的,如此处所述。

一个例子可能是这样的

cors({
  origin: [
    'https://myurl.netlify.app', 
    /^https:\/\/[0-9A-Za-z]+--myurl\.netlify\.app$/
  ],
  // ....
})
© www.soinside.com 2019 - 2024. All rights reserved.