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

Nuxt应用使用Axios请求Docker部署后端报getaddrinfo ENOTFOUND错误

问题解决办法

根因说明

该错误产生的核心原因是Nuxt的fetch钩子在服务端渲染(SSR)阶段会在Node.js环境执行请求,Node.js的DNS解析规则和浏览器不同,无法自动识别backend.localhost指向本地127.0.0.1;而浏览器可以正常解析这个自定义本地域名,所以你直接访问http://backend.localhost/api的API UI是正常的。

解决方案

以下两种方案均可解决问题,第二种无需修改系统配置,更推荐使用:

方案1:修改本地hosts文件

在本机hosts配置中添加域名映射,让Node.js可以正常解析backend.localhost:

127.0.0.1 backend.localhost

不同系统的hosts文件路径:

  • Windows系统:C:\Windows\System32\drivers\etc\hosts
  • Mac/Linux系统:/etc/hosts
    修改保存后刷新系统DNS缓存,再重启Nuxt服务即可生效。

方案2:Axios分环境配置请求前缀

直接在nuxt.config.js中根据代码执行环境配置不同的baseURL,跳过域名解析步骤:

axios: {
  // 服务端执行时直接走127.0.0.1访问Traefik,客户端保持原域名走反向代理
  baseURL: process.server ? 'http://127.0.0.1/api' : 'http://backend.localhost/api'
}

修改后重启Nuxt服务即可正常发起请求。

验证

配置完成后重新触发接口请求,即可正常获取接口返回数据。如果选择方案1,可先在终端执行ping backend.localhost确认域名解析是否正常,解析返回127.0.0.1即为配置成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:54:00