""" CORS配置模板文件 提供多种配置方案供用户选择 """ # ============================================================================ # 配置方案选择 # ============================================================================ # 选择配置方案(取消注释你想要的方案) CORS_SCHEME = "ALLOW_ALL" # 最灵活,允许任意前端访问 # CORS_SCHEME = "IP_RANGE" # 允许特定IP网段 # CORS_SCHEME = "FIXED_LIST" # 只允许固定的前端地址 # ============================================================================ # 方案1: 允许所有源(最灵活,开发环境推荐) # ============================================================================ if CORS_SCHEME == "ALLOW_ALL": ALLOWED_ORIGINS = "*" SUPPORTS_CREDENTIALS = False # 通配符时不支持凭据 SEND_WILDCARD = True # ============================================================================ # 方案2: 允许特定IP网段(生产环境推荐) # ============================================================================ elif CORS_SCHEME == "IP_RANGE": # 允许的IP网段 ALLOWED_IP_RANGES = [ "192.168.0.0/16", # 局域网IP段 "10.0.0.0/8", # 内网IP段 "172.16.0.0/12", # 内网IP段 "127.0.0.0/8", # 本地回环 ] # 允许的端口范围 ALLOWED_PORTS = [ 3000, 5173, 8080, # 常见开发端口 3001, 5174, 8081, # 备用端口 4000, 5000, 6000, # 其他端口 ] ALLOWED_ORIGINS = "*" # 动态验证IP SUPPORTS_CREDENTIALS = True SEND_WILDCARD = False # ============================================================================ # 方案3: 固定地址列表(最安全,但不够灵活) # ============================================================================ elif CORS_SCHEME == "FIXED_LIST": ALLOWED_ORIGINS = [ "http://localhost:5173", # Vite默认端口 "http://localhost:3000", # React默认端口 "http://localhost:8080", # Vue默认端口 "http://127.0.0.1:5173", "http://127.0.0.1:3000", "http://127.0.0.1:8080", # 添加你的前端地址 # "http://your-frontend-ip:port", ] SUPPORTS_CREDENTIALS = True SEND_WILDCARD = False # ============================================================================ # 通用配置 # ============================================================================ # 允许的HTTP方法 ALLOWED_METHODS = [ "GET", "POST", "PUT", "DELETE", "OPTIONS" ] # 允许的请求头 ALLOWED_HEADERS = [ "Content-Type", "Authorization", "X-Requested-With", "Accept", "Origin", "Cache-Control", "X-File-Name" ] # 暴露的响应头 EXPOSED_HEADERS = [ "Content-Type", "Content-Length", "Content-Disposition", "X-Total-Count" ] # CORS配置选项 CORS_OPTIONS = { "resources": {r"/api/*": {"origins": ALLOWED_ORIGINS}}, "supports_credentials": SUPPORTS_CREDENTIALS, "methods": ALLOWED_METHODS, "allow_headers": ALLOWED_HEADERS, "expose_headers": EXPOSED_HEADERS, "max_age": 86400, # 预检请求缓存时间(秒) "send_wildcard": SEND_WILDCARD, "automatic_options": True } # ============================================================================ # 配置说明 # ============================================================================ """ 配置方案说明: 1. ALLOW_ALL (推荐用于开发环境) - 优点:最灵活,支持任意前端地址 - 缺点:安全性较低,不支持凭据 - 适用:开发、测试环境 2. IP_RANGE (推荐用于生产环境) - 优点:安全性适中,支持凭据 - 缺点:需要配置IP网段 - 适用:内网生产环境 3. FIXED_LIST (最安全) - 优点:最安全,完全控制访问源 - 缺点:不够灵活,需要手动维护 - 适用:严格安全要求的环境 使用方法: 1. 选择你想要的配置方案 2. 取消注释对应的 CORS_SCHEME 3. 根据需要调整具体配置 4. 重启Flask应用使配置生效 """