配置代理后Vue+Django项目仍跨域?请求遭ECONNREFUSED错误
解决Django + Vue开发代理ECONNREFUSED错误
核心问题分析
你遇到的ECONNREFUSED错误,本质是Vue开发代理无法连接到Django服务,结合你的配置来看,主要有两处关键问题需要修正:
具体修复步骤
1. 确认Django服务正常运行
首先检查Django是否在localhost:8000启动:
- 执行命令启动Django:
python manage.py runserver - 在浏览器访问
http://localhost:8000,确认页面能正常加载(哪怕是默认的Django欢迎页)
2. 修改Axios请求路径,触发代理
你的Axios请求写了完整的http://localhost:8080/api,这会直接请求Vue自身的服务,完全不会走代理逻辑。改成相对路径即可:
axios .get("/api") .then((response: any) => (this.players = response));
3. 可选:优化代理配置(提升兼容性)
如果后续需要更灵活的代理规则,可以把vue.config.js调整为更细化的配置,避免路径匹配问题:
const { defineConfig } = require("@vue/cli-service"); module.exports = defineConfig({ transpileDependencies: true, devServer: { proxy: { '/api': { target: 'http://localhost:8000', changeOrigin: true, pathRewrite: { '^/api': '' } // 若Django的API没有/api前缀,需要删除这行或调整规则 } } } });
验证操作
- 重启Vue开发服务器:
npm run serve - 重新发起请求,检查是否能正常获取Django的API响应
内容的提问来源于stack exchange,提问作者Kevin B.
相关产品推荐
相关产品推荐

