Vue请求代理地址localhost报错:[HPM] Error occurred while trying to proxy request的解决方案

 更新时间:2026年02月05日 09:16:28   作者:super_lzb  
这篇文章主要介绍了在前后端联调测试Vue时遇到的请求超时问题,通过排查发现是由于Vue请求的后端服务只监听了IPv4,而Vue发送的localhost地址请求被解析为IPv6的回环地址导致的,通过修改hosts文件将localhost改为127.0.0.1,并将Vue代理请求更换成127.0.0.1,解决了问题

前言

今天前后端联调测试vue报错,[HPM] Error occurred while trying to proxy request /getSystemTime from 127.0.0.1 to http://localhost:8080/api/ (ETIMEDOUT) (https://nodejs.org/api/errors.html#errors_common_system_errors),意思是这个请求uri  /getSystemTime 请求到服务地址 http://localhost:8080 超时报错了,但是后端服务是正常启动的,

问题排查

这个问题在于 (ETIMEDOUT)也就是请求超时,vue客户端和服务端网络握手没有成功。正常来说localhost作为回环地址:允许计算机与自身进行网络通信,而不需要经过物理网络接口(如网卡)。所以可以在本地运行一个 Web 服务器,然后通过客户端访问 http://localhost:8080 服务。

网络联通性测试

ping localhost

通过ping localhost命令进行测试发现返回 ::1 (IPv6)

ping 127.0.0.1

通过 ping 127.0.0.1命令进行测试发现返回了127.0.0.1

所以通过上面测试发现 localhost 是一个特殊的主机名,它指向当前计算机本身,对应的 IP 地址是 127.0.0.1(IPv4)或 ::1(IPv6)。

问题结论

vue请求的后端服务只监听了 IPv4,而vue发送localhost的地址请求被解析为ipv6的回环地址,所以请求不通。即 localhost -> 连接到 ::1:8080 -> 连接失败,而使用 127.0.0.1 -> 连接到 127.0.0.1:8080 -> 连接成功。

解决方案

强制使用 IPv4

在 hosts 文件中添加配置(需要管理员权限)Windows位置: C:\Windows\System32\drivers\etc\hosts,
Linux/Mac位置: /etc/hosts。

配置如下所示

127.0.0.1 localhost
::1 localhost  # 可以注释掉这行

修改localhost为127.0.0.1

将vue代理请求更换成127.0.0.1 即可。

   proxyTable: {
      '/api': {
          //target: 'http://localhost:8080/api/',
          target: 'http://127.0.0.1:8080/api/',
          changeOrigin: true,
          pathRewrite: {
            '^/api': ''
          }
        }
    },

localhost 与 127.0.0.1 的区别

对比项localhost127.0.0.1
本质主机名(域名)IPv4 地址
解析需要 DNS 解析直接指向本地
IPv6可能解析为 ::1固定 IPv4 地址
系统 hosts可能被修改固定不变
连接速度稍慢(需解析)直接连接

以上就是Vue请求代理地址localhost报错:[HPM] Error occurred while trying to proxy request的解决方案的详细内容,更多关于Vue localhost报错Error occurred的资料请关注脚本之家其它相关文章!

相关文章

  • vue实现全局组件自动注册,无需再单独引用

    vue实现全局组件自动注册,无需再单独引用

    这篇文章主要介绍了vue实现全局组件自动注册,无需再单独引用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • vue配置文件自动生成路由和菜单实例代码

    vue配置文件自动生成路由和菜单实例代码

    因为不同的用户有不同的权限,能访问的页面是不一样的,所以我们在写后台管理系统时就会遇过这样的需求:根据后台数据动态添加路由和菜单,这篇文章主要给大家介绍了关于vue配置文件自动生成路由和菜单的相关资料,需要的朋友可以参考下
    2021-08-08
  • vite+vue3中如何使用router

    vite+vue3中如何使用router

    这篇文章主要介绍了vite+vue3中如何使用router问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 解决element-ui table设置列fixed时X轴滚动条无法拖动问题

    解决element-ui table设置列fixed时X轴滚动条无法拖动问题

    这篇文章主要介绍了解决element-ui table设置列fixed时X轴滚动条无法拖动问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • vue实现底部菜单功能

    vue实现底部菜单功能

    本文通过实例代码给大家介绍了vue实现底部菜单功能,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-07-07
  • vue定时器设置和关闭页面时关闭定时器方式

    vue定时器设置和关闭页面时关闭定时器方式

    这篇文章主要介绍了vue定时器设置和关闭页面时关闭定时器方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Vue中使用Three.js实现动态海洋与天空背景

    Vue中使用Three.js实现动态海洋与天空背景

    文章介绍在Vue中使用Three.js实现动态海洋与天空背景,通过组合式API管理场景生命周期,结合Water和Sky类创建水面波动及天空效果,动态调整太阳位置,适配窗口变化并清理资源,提升登录页视觉效果与3D渲染集成能力
    2025-06-06
  • Vue中的Props(不可变状态)

    Vue中的Props(不可变状态)

    这篇文章主要介绍了Vue中的Props(不可变状态),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • Vue使用CDN引用项目组件,减少项目体积的步骤

    Vue使用CDN引用项目组件,减少项目体积的步骤

    这篇文章主要介绍了Vue使用CDN引用项目组件,减少项目体积的步骤,帮助大家提高项目加载速度,感兴趣的朋友可以了解下
    2020-10-10
  • Vue路由回退的完美解决方案(vue-route-manager)

    Vue路由回退的完美解决方案(vue-route-manager)

    最近做了一个vue项目关于路由场景的问题,路由如何回退指定页面,在此做个记录,这篇文章主要给大家介绍了关于Vue路由回退的完美解决方案,主要利用的是vue-route-manager,需要的朋友可以参考下
    2021-09-09

最新评论