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

本地Django与React项目间CORS错误排查求助

问题排查与解决方案

以下是可能遗漏的配置或需要检查的关键点:

  • 检查corsheaders中间件顺序
    CorsMiddleware必须放在django.middleware.common.CommonMiddleware之前,且尽量靠前(在SecurityMiddleware之后即可)。错误的顺序会导致CORS响应头无法被添加到响应中。正确的中间件配置示例:

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'corsheaders.middleware.CorsMiddleware',  # 必须在CommonMiddleware之前
        'django.middleware.common.CommonMiddleware',
        # 其他中间件...
    ]
    
  • 验证请求Origin的精确匹配
    前端请求的Origin必须与CORS_ALLOWED_ORIGINS中的条目完全一致(包括协议、域名、端口)。可以在Django接口中打印实际请求的Origin来确认:

    # 在你的tournaments视图函数中添加
    def tournaments_view(request):
        print(request.META.get('HTTP_ORIGIN'))  # 查看实际请求的Origin
        # 其他逻辑...
    

    确保打印出的Origin存在于CORS_ALLOWED_ORIGINS列表中。

  • 清除浏览器或Django缓存
    浏览器可能缓存了未包含CORS头的旧响应,尝试用隐身模式访问或清空浏览器缓存测试。如果Django启用了缓存,临时禁用缓存或重启服务,避免返回缓存的旧响应。

  • 排查其他中间件的干扰
    某些安全类中间件可能会修改或移除响应头,检查你的MIDDLEWARE列表,确认没有其他中间件在CorsMiddleware之后覆盖了响应头。如果有,调整中间件顺序或针对该接口排除这些中间件的影响。

  • 确认corsheaders版本兼容性
    确保django-cors-headers版本与你的Django版本兼容。比如Django 4.x需要django-cors-headers>=3.10.0,版本不匹配可能导致配置不生效,可通过pip show django-cors-headers查看版本,必要时升级:

    pip install --upgrade django-cors-headers
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:03:13