2018 年调试一个 Ionic 项目,把后端地址从服务器 IP 换成 localhost 后,应用一直停在启动页。启动时的后端请求没有进入预期断点;改为开发电脑的 IP 后,当时恢复了。

这提示后端地址值得检查,但没有断点命中并不能确定唯一原因。还应看实际请求地址、错误和访问日志。

localhost 指向请求发起环境

桌面浏览器中的 localhost 通常指电脑本身;真机中的 localhost 指手机;模拟器又有自己的网络环境。后端在开发电脑运行,不表示所有运行容器都能通过 localhost 找到它。

先明确运行的是 ionic serve、模拟器还是设备包,再选择该环境能访问的地址。模拟器到宿主机的地址和转发方式,应按相应产品文档确认,不应给所有设备硬编码同一个特殊 IP。

按实际请求逐层排查

  1. 在调试器中记录完整 URL、协议、端口、请求方式与具体错误。
  2. 检查后端是否监听可达地址,而不是只监听回环接口。
  3. 确认设备与开发电脑的网络、路由和防火墙策略。
  4. 根据 WebView、浏览器或原生网络入口,检查 CORS、TLS 与平台网络安全限制。
  5. 对照后端访问日志,确认请求是否到达正确实例。

IP 改对之后出现 CORS 或证书错误,是另一个阶段的问题。不要因此关闭所有安全限制,也不要把开发后端直接暴露到公网。

启动请求失败,不应只留下一张启动图

应用应对启动所需请求设置合理超时、明确错误状态和受控重试入口。可以将本地页面初始化与非关键数据加载分开,让用户知道哪里失败,而不是无限等待。

当年的记录没有实现这些失败分支,因此它们是处理同类问题时应考虑的设计,不是当年已经验证的结果。

后端地址最好按开发、测试和发布环境配置。开发电脑的临时局域网 IP 可以帮助定位,但不应成为正式部署方案。