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

Django+React部署CPanel时CORS跨域问题排查求助

问题排查与解决方案

1. 修正Django的ALLOWED_HOSTS配置

你的后端服务部署在api.example.com,但当前ALLOWED_HOSTS未包含该域名,Django会直接拒绝来自未授权主机的请求,导致CORS响应头无法正常返回。修改配置如下:

ALLOWED_HOSTS = [
    'www.example.com',
    'example.com',
    'api.example.com',
    'xxx.yyy.208.227',
]

2. 启用CORS_ALLOW_CREDENTIALS

你的前端axios实例设置了withCredentials: true,必须开启Django的跨域凭证支持,否则带凭证的跨域请求会被拦截:

CORS_ALLOW_CREDENTIALS = True

3. 确认CORS_ALLOWED_ORIGINS覆盖所有前端域名

当前配置已包含https://www.example.com和https://example.com,符合前端域名需求,但如果有其他测试环境域名发起请求,也需要补充到列表中。

4. 重启Django服务

修改settings.py后,必须在CPanel中重启后端应用(比如通过Passenger应用管理重启),否则新配置不会生效。

5. 检查CPanel服务器层面配置

  • 确认api.example.com子域名已正确指向后端应用的部署目录
  • 排查Apache/Nginx是否存在额外的CORS拦截规则,避免服务器端自定义的Access-Control-Allow-Origin头与Django配置冲突
  • 清除浏览器缓存,避免之前的错误响应被缓存影响测试

6. 验证axios实例的BASE_URL

确认BASE_URL变量的值为https://api.example.com,确保请求目标地址正确,避免因地址错误导致的跨域问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:33:10