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

Angular+Ionic代理请求报错ENOTFOUND,求排查方案

解决Angular/Ionic代理配置出现ENOTFOUND的问题

1. 先检查proxy.conf.json的目标地址格式

别漏了http://协议!很多人写代理目标只写localhost:8081,Angular代理会把它当成一个域名去解析,自然会出ENOTFOUND。正确的配置应该是这样:

{
  "/be/*": {
    "target": "http://localhost:8081",
    "secure": false,
    "changeOrigin": true,
    "logLevel": "debug" // 开debug日志能帮你排查代理过程
  }
}

2. 确认angular.json里的proxyConfig路径没错

检查angular.json中serve配置下的proxyConfig是不是指向你实际的配置文件路径。比如如果你的proxy.conf.json在src目录下,配置应该是:

"architect": {
  "serve": {
    "builder": "@angular-devkit/build-angular:dev-server",
    "options": {
      "browserTarget": "your-app-name:build",
      "proxyConfig": "src/proxy.conf.json"
    }
  }
}

路径错了的话,Angular根本读不到代理配置,等于白配。

3. 看看Spring Boot服务的绑定地址

有时候Spring Boot没绑定到localhost,而是绑定了0.0.0.0或者你的局域网IP。去看Spring Boot的启动日志,找类似Tomcat started on port(s): 8081 (http) with context path ''的内容,确认实际监听的地址,然后把代理的target改成对应的地址,比如http://127.0.0.1:8081或者你的实际IP。

4. 修改配置后一定要重启开发服务器

改完proxy.conf.json或者angular.json后,必须关掉ionic serve/ng serve再重新启动,新配置才会生效。这是最容易忽略的点!

5. 检查你的请求路径是否匹配代理规则

确保AccountService里的请求是用相对路径/be/account,而不是直接写http://localhost:8081/be/account。比如:

// 正确写法
postAccount(data: any) {
  return this.http.post('/be/account', data);
}

如果写了完整域名,请求会绕过代理,既解决不了CORS,还可能触发其他问题。

6. 试试用127.0.0.1代替localhost

偶尔本地DNS解析localhost会出问题,把代理目标换成http://127.0.0.1:8081,直接用回环地址,避免DNS解析的坑。


内容的提问来源于stack exchange,提问作者Javier Martinez Barriga

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 22:03:14