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

React/Node.js应用代理报错:无法代理Stripe客户门户请求

解决React代理到Express后端的ECONNREFUSED错误

遇到Proxy error: Could not proxy request ... ECONNREFUSED这个问题,本质是React开发服务器无法连接到你的Express后端服务,按以下步骤逐一排查:

  • 确认后端服务器正在运行
    先检查Express后端是否启动成功。打开运行后端的终端,确认执行了启动命令(比如node server.js或npm run start),且没有报错信息。如果后端未启动,3001端口没有服务监听,代理自然无法连接。

  • 核对后端监听端口
    检查Express代码里的监听端口是否为3001。你的后端代码应该有类似如下的配置:

    app.listen(3001, () => {
      console.log('Server running on port 3001');
    });
    

    如果这里写的是其他端口(比如3000),要么将后端端口改为3001,要么把React的代理配置改为后端实际使用的端口。

  • 修正React代理配置
    打开React项目的package.json,检查代理配置:

    "proxy": "http://localhost:3001"
    

    注意不要添加末尾的斜杠(/),部分版本的create-react-app对末尾斜杠的处理存在问题,去掉后重启React开发服务器重试。

  • 直接测试后端接口
    绕过React代理,直接用浏览器或Postman访问http://localhost:3001/create-customer-portal-session(如果是POST接口,就用POST方法发送请求)。如果直接访问也报错,说明后端接口本身存在问题,比如路由定义错误、Stripe API密钥配置错误等,先调通后端接口再处理代理问题。

  • 检查端口占用情况
    可能3001端口被其他程序占用,导致后端无法启动:

    • Windows系统:打开命令提示符,执行netstat -ano | findstr :3001,找到占用端口的进程ID(PID),在任务管理器中杀掉对应进程。
    • Mac/Linux系统:打开终端,执行lsof -i :3001,找到进程后用kill -9 <PID>终止进程。
      之后重启后端服务器,再测试代理连接。

如果以上步骤排查后仍有问题,可检查后端是否配置了CORS中间件(不过ECONNREFUSED通常与CORS无关,CORS错误会显示No 'Access-Control-Allow-Origin' header)。若代理成功后遇到跨域问题,在Express中安装并启用cors中间件即可:

npm install cors
const cors = require('cors');
app.use(cors());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:10:31