子域名 CORS 配置到底该怎么写才安全?

公孙炜曦 阅读 27

我们前端部署在 app.example.com,后端 API 在 api.example.com,现在跨域请求一直被拦。试过在后端设置 Access-Control-Allow-Origin: https://app.example.com,但有时候本地开发用 localhost 又要改配置,很麻烦。

网上有人说直接写 *.example.com 就行,但好像浏览器不认这种通配符?那怎么才能既支持所有子域名又不降低安全性啊?

我来解答 赞 5 收藏
二维码
手机扫码查看
1 条解答
海利🍀
我之前这样搞的,后端设置 Access-Control-Allow-Origin 时动态获取来源域名,用代码判断是不是 *.example.com 的子域名。这样本地开发和生产环境都不用改配置了。


const url = new URL(req.headers.origin);
if (url.hostname.endsWith('.example.com')) {
res.setHeader('Access-Control-Allow-Origin', req.headers.origin);
}


记得加上对 HTTPS 的验证,不然还是有安全风险。累死了,但这个方法挺靠谱的。
点赞
2026-03-29 13:30