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

如何解决React与Django项目中的CORS跨域错误

解决Django + React登录应用的CORS错误问题

核心问题分析

你的CORS配置里缺少React应用运行的端口号。React默认在3000端口启动,浏览器判断跨域时会严格匹配「域名+端口」,仅填写http://localhost或http://127.0.0.1会导致源不匹配,触发CORS错误。

具体解决步骤

  • 修正Django的CORS_ALLOWED_ORIGINS配置
    在settings.py中添加带端口的React源:

    CORS_ALLOWED_ORIGINS = [
        'http://localhost:3000',
        'http://127.0.0.1:3000',
        # 保留原有需要的其他源配置
    ]
    CORS_ALLOW_CREDENTIALS = True
    

    如果你的React使用了非默认端口(如3001),替换为对应端口即可。

  • 确保django-cors-headers中间件配置正确
    确认settings.py的MIDDLEWARE中包含以下两项(顺序不能错,需放在CommonMiddleware之前):

    MIDDLEWARE = [
        # ... 其他中间项
        'corsheaders.middleware.CorsMiddleware',
        'django.middleware.common.CommonMiddleware',
        # ... 其他中间项
    ]
    

    同时INSTALLED_APPS要添加依赖:

    INSTALLED_APPS = [
        # ... 其他应用
        'corsheaders',
    ]
    
  • 配置Axios携带Credentials
    因为你开启了CORS_ALLOW_CREDENTIALS = True,前端Axios需要同步启用withCredentials,修改实例配置:

    const client = axios.create({
        baseURL: "http://127.0.0.1:8000",
        withCredentials: true
    });
    
  • 重启Django服务
    修改配置后必须重启Django开发服务器,新配置才能生效。

内容的提问来源于stack exchange,提问作者Nahid From Japan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:01:02