Django+React项目配置corsheaders后仍出现CORS/Axios连接错误
问题根因
你的corsheaders配置逻辑完全正确,报错和跨域配置无关,核心问题有两个:
- 前端请求协议配置错误:React代码中
baseUrl写的是https://127.0.0.1:8000/api,但本地默认启动的Django开发服务是HTTP协议,没有配置SSL证书,无法响应HTTPS请求,直接触发ERR_CONNECTION_REFUSED。火狐浏览器提示的CORS错误是连接失败后的连带误判——请求根本没到Django服务,自然拿不到CORS响应头,浏览器就会归因为CORS请求失败。 - 未确认Django服务的运行状态:如果Django服务没启动、或者启动时绑定了其他端口/地址,也会触发连接拒绝。
修复步骤
- 修正前端请求地址
把React代码里的请求协议从HTTPS改为HTTP,和本地Django服务协议保持一致:
// 原错误配置 // const baseUrl='https://127.0.0.1:8000/api'; // 修正后 const baseUrl='http://127.0.0.1:8000/api';
- 确认Django服务正常启动
进入Django项目根目录,执行启动命令,明确绑定127.0.0.1的8000端口:
python manage.py runserver 127.0.0.1:8000
启动成功后终端会输出Starting development server at http://127.0.0.1:8000/的提示,此时先直接在浏览器访问http://127.0.0.1:8000/api/teacher/,确认接口能正常返回响应,再测试前端请求。
3. 异常兜底排查
如果完成前两步仍然报错,依次检查:
- 8000端口是否被其他程序占用,若被占用可以更换端口启动Django,同步修改前端
baseUrl里的端口号即可 - 本地是否开了网络代理、防火墙拦截了本地8000端口的请求,临时关闭代理/防火墙再测试
内容的提问来源于stack exchange,提问作者Imani Njoki Kamau
相关产品推荐
相关产品推荐

