You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask Web应用跨域问题:No-Access-Control-Allow-Origin错误排查

Flask跨域配置在Mac Chrome失效的排查点
  • Flask-CORS未正确处理预检请求
    跨域的OPTIONS预检请求可能没被Flask-CORS接管处理。可以尝试显式指定接口路径、允许的源和方法:

    CORS(app, resources={r"/api/*": {"origins": "http://localhost:8080", "methods": ["GET", "POST", "OPTIONS"]}})
    

    或者单独为OPTIONS请求写处理逻辑:

    from flask import make_response
    
    @app.route("/api/upload", methods=['OPTIONS'])
    def handle_upload_options():
        response = make_response()
        response.headers["Access-Control-Allow-Origin"] = "http://localhost:8080"
        response.headers["Access-Control-Allow-Headers"] = "Content-Type"
        response.headers["Access-Control-Allow-Methods"] = "POST, OPTIONS"
        return response
    
  • 浏览器缓存干扰
    Mac Chrome可能缓存了之前无CORS头的响应记录。打开开发者工具(F12),在Network面板勾选「Disable cache」,清空缓存后重新测试。

  • 调试模式的加载问题
    开启Flask的debug=True时,代码自动重载可能导致CORS配置未被正确初始化。尝试关闭调试模式,或者确保在app实例创建完成后再配置CORS。

  • 源地址的细微差异
    确认前端实际的origin是http://localhost:8080,没有额外的尾斜杠(比如http://localhost:8080/)或其他字符差异,极端情况下这种细微差别会导致CORS匹配失败。

  • 其他中间件拦截响应头
    如果应用中还有权限验证、日志类的中间件,检查这些代码是否修改或移除了Access-Control-Allow-Origin等CORS相关响应头。

内容的提问来源于stack exchange,提问作者maltesinho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 21:57:04