如何解决localhost:3000代理请求到http://localhost:5000/出现的Proxy error错误
Proxy error: Could not proxy request /api/auth/register from localhost:3000 to http://localhost:5000/
错误码:ECONNREFUSED

这个错误是前端的代理请求无法连接到指向的后端服务,端口被拒绝访问,可按以下步骤排查解决:
- 先确认后端服务已正常启动并运行在5000端口。可以直接在浏览器访问
http://localhost:5000测试连通性,也可以用命令验证端口是否被占用:Windows系统执行netstat -ano | findstr "5000",Mac/Linux系统执行lsof -i :5000,有输出结果才说明5000端口有正在运行的服务。 - 检查前端代理配置是否正确。如果是React项目,确认package.json里的proxy字段值为
"http://localhost:5000",不要多加末尾的斜杠;如果是Vue/Vite项目,检查vue.config.js或vite.config.js里的proxy配置,target地址不要写错端口或协议头。 - 调整代理配置适配本地监听规则。如果后端服务只绑定了127.0.0.1没绑定localhost,可把代理配置里的target值改成
"http://127.0.0.1:5000"测试,后端启动时也可以指定监听0.0.0.0保证本地所有地址都能访问。 - 补充代理配置项。Webpack/Vite的代理配置里要加上
changeOrigin: true,如果是https协议的目标地址还要加secure: false,参考Vite配置示例:
import { defineConfig } from 'vite' export default defineConfig({ server: { proxy: { '/api': { target: 'http://localhost:5000', changeOrigin: true, // 如果接口没有/api前缀,可添加下面的配置去掉路径里的/api // rewrite: (path) => path.replace(/^\/api/, '') } } } })
- 检查端口拦截问题。确认本地防火墙没有拦截5000端口,也没有其他软件占用5000端口,如果存在占用可以结束占用进程,或者把后端服务和前端代理的端口同步修改为其他未被占用的端口,比如5001。
内容的提问来源于stack exchange,提问作者AntonHPL
相关产品推荐
相关产品推荐

