CORS 跨域白名单配置

场景说明

在以下场景中,浏览器会因同源策略拦截跨域请求,需要配置 CORS_ORIGIN_WHITELIST 来明确允许合法的跨域来源:

  • 前端独立部署:前端页面部署在与后端 API 不同的域名或端口下(如前端在 https://app.example.com,后端在 https://api.example.com
  • 嵌入式集成:将 Data Agent 页面通过 iframe 或嵌入页的方式集成到第三方平台中
  • 多环境访问:同一后端服务被多个不同域名的前端访问(如生产环境 https://prod.example.com、管理后台 https://admin.example.com

期望行为

场景未配置配置后
跨域 API 请求浏览器拦截,请求失败正常响应
非白名单来源请求被拒绝被拒绝(不受影响)

解决方案

在环境变量中配置 CORS_ORIGIN_WHITELIST,指定允许跨域访问的来源域名列表。

配置步骤

  1. 打开部署目录下 Docker Compose 中的环境变量配置(或是其他环境变量添加方式)
  2. 添加 CORS_ORIGIN_WHITELIST 变量
  3. 重启服务使配置生效

配置示例

# 单个来源
CORS_ORIGIN_WHITELIST=https://app.example.com

# 多个来源,用逗号分隔
CORS_ORIGIN_WHITELIST=https://app.example.com,https://admin.example.com

注意事项

  • 多个来源使用英文逗号分隔,无需空格
  • 匹配方式为精准匹配,需填写完整协议 + 域名 + 端口(如有),如 https://app.example.com:8443
  • 配置后仅白名单内的来源可发起跨域请求,其他来源仍会被拒绝
  • 修改环境变量后需重启服务方可生效