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

求助:Django+React部署Heroku后仅本地运行后端时请求正常

排查方向建议
  • 检查前端请求地址配置
    确认React前端发送请求的baseURL指向的是Heroku上的Django后端域名,而非本地的localhost:8000这类地址。很多时候本地开发用的是本地后端地址,部署后未及时修改,会导致请求无法到达正确的后端服务。

  • 跨域(CORS)配置排查
    本地运行时可能依赖浏览器的开发豁免或临时CORS配置,但Heroku部署后需确保Django正确配置跨域:

    1. 确认已安装django-cors-headers并添加到INSTALLED_APPS
    2. 将corsheaders.middleware.CorsMiddleware放到MIDDLEWARE的最前面
    3. 在settings.py中配置允许的源:
    CORS_ALLOWED_ORIGINS = [
        "https://barkbnb-demo.herokuapp.com",
    ]
    
  • 查看Heroku后端日志
    通过heroku logs --tail命令或Heroku控制台查看应用日志,重点关注请求触发时的报错信息,比如数据库连接失败、路由匹配错误、依赖缺失等,日志是定位问题的核心依据。

  • 验证Heroku部署配置

    • 检查Procfile是否正确配置,内容应为:
      web: gunicorn your_project_name.wsgi --log-file -
      
    • 确认requirements.txt中包含gunicorn依赖
    • 检查环境变量:确保DEBUG=False(生产环境必须关闭),DATABASE_URL(使用Heroku Postgres时)配置正确
  • HTTPS协议与安全配置
    Heroku默认使用HTTPS,需确保:

    • 前端请求使用https://协议,避免混合内容被浏览器拦截
    • Django配置中开启:
      SECURE_SSL_REDIRECT = True
      SESSION_COOKIE_SECURE = True
      CSRF_COOKIE_SECURE = True
      
  • CSRF令牌校验问题
    若POST/PUT等修改请求报错,需检查:

    • 前端请求头是否携带X-CSRFToken(从Cookie中获取)
    • Django的settings.py中是否将Heroku域名加入CSRF_TRUSTED_ORIGINS:
      CSRF_TRUSTED_ORIGINS = ['https://barkbnb-demo.herokuapp.com']
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:25:20