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

NextJS生产环境Axios调用本地API遇ECONNREFUSED错误

问题解决:Next.js生产环境调用内部API出现ECONNREFUSED错误

原因分析

开发模式下localhost通常能正常解析,但生产环境中系统可能优先将localhost解析为IPv6地址::1,而你的应用可能只监听了IPv4的127.0.0.1端口,导致Axios连接被拒绝。换成127.0.0.1后强制走IPv4协议,所以能正常连接。

解决方案

1. 优先使用相对路径调用内部API

同应用内的API接口完全不需要硬编码域名,直接用相对路径即可,Next.js会自动适配开发/生产环境:

// 直接用相对路径,无需带域名
axios.post('/api/verify', { /* 请求数据 */ })

2. 配置环境变量统一API地址

如果必须使用绝对路径,建议通过环境变量管理避免硬编码:

  • 在项目根目录创建.env.production文件,添加:
    NEXT_PUBLIC_API_BASE_URL=http://127.0.0.1:3000
    
  • 调用API时读取环境变量:
    axios.post(`${process.env.NEXT_PUBLIC_API_BASE_URL}/api/verify`, { /* 请求数据 */ })
    

3. 强制Axios使用IPv4解析

修改Axios实例配置,添加family: 4参数强制使用IPv4协议解析域名:

import axios from 'axios';

const apiClient = axios.create({
  baseURL: 'http://localhost:3000',
  family: 4 // 强制使用IPv4
});

// 调用API
apiClient.post('/api/verify', { /* 请求数据 */ });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:17:04