动态更改 CORS 端口

Posted

技术标签:

【中文标题】动态更改 CORS 端口【英文标题】:change CORS port dynamically 【发布时间】:2021-11-30 17:53:56 【问题描述】:

我想给我的端点提供前端访问权限,但它们的端口范围从 3000 到 3005 我如何动态设置或设置所有这些

 CORS_ALLOWED_ORIGINS = [
    'http://localhost:3001',
    'http://localhost:3000',
]

【问题讨论】:

【参考方案1】: CORS_ALLOWED_ORIGINS:可以执行跨域请求的来源列表(逗号分隔值)。

如果列表中存在特殊的* 值,则将允许所有来源。来源可以包含通配符 () 来替换 0 个或多个字符(即:http://.domain.com)。使用通配符意味着小的性能损失。

Only one wildcard can be used per origin.

示例:CORS_ALLOWED_ORIGINS=http://*.domain.com,http://*.domain2.com

【讨论】:

所以我可以做这样的事情http://localhost:*,我对正则表达式有点不熟悉,那么CORS_ALLOWED_ORIGIN_REGEXES = [ r"^https://\w+\.domain\.com$", ] 嘿@AtifShafi,我不熟悉 Django,但是查看文档,如果您想向所有人公开您的应用程序,您可以设置 CORS_ALLOW_ALL_ORIGINS=True 并删除 CORS_ALLOWED_ORIGINS。顺便说一句,这可能很危险,如果你给我一些例子,我可以尝试为你创建一个正则表达式。

以上是关于动态更改 CORS 端口的主要内容,如果未能解决你的问题,请参考以下文章

如何允许 CORS 使用多个端口?

共享主机触发具有相同域和端口的 CORS

.Net Core 配置 CORS 以同时允许所有子域和所有 localhost 端口

如果端口被隐藏,Docker 的 CORS 问题

正确理解具有相同主机/不同端口和安全性的 CORS

CORS 允许所有在同一服务器上的不同端口在 JAVA 中