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

Angular 5本地调用Heroku部署的Spring Boot API遇代理错误求助

解决Angular代理调用Heroku Spring Boot API的问题

这种代理报错的情况我之前开发时也碰到过,结合你的场景,给你几个实用的排查和解决方向:

  • 先核对Angular代理配置细节
    首先检查你的代理配置文件(通常是proxy.conf.json),几个容易踩坑的点:

    • 目标地址https://jdjone-ws.herokuapp.com后面有没有遗漏斜杠?路径拼接时少个斜杠很容易导致请求地址错误;
    • 一定要加上"secure": false选项,虽然Heroku的HTTPS证书是合法的,但本地代理服务器有时会对HTTPS验证产生冲突;
    • 别忘了配置"changeOrigin": true,这个能确保请求头里的Host被修改为目标服务器的地址,避免Heroku的路由识别问题。
      给你一个参考配置:
    {
      "/api/*": {
        "target": "https://jdjone-ws.herokuapp.com",
        "secure": false,
        "changeOrigin": true,
        "pathRewrite": {"^/api": ""}
      }
    }
    

    另外要确认启动Angular时确实指定了代理配置,比如运行ng serve --proxy-config proxy.conf.json,而不是直接ng serve。

  • 排查CORS和Heroku实例状态
    虽然Postman能正常请求,但浏览器端的请求受CORS约束,哪怕用了代理也可能有隐藏问题:

    • 可以临时在Spring Boot的Controller上加上@CrossOrigin(origins = "*"),测试是不是CORS配置导致的问题;
    • 别忘了Heroku的免费实例长时间闲置会休眠,第一次请求可能超时,代理服务器会因此报错。你可以先在浏览器里直接访问https://jdjone-ws.herokuapp.com/api/empresa,唤醒实例后再测试Angular的请求。
  • 验证本地网络和请求路径

    • 先用curl https://jdjone-ws.herokuapp.com/api/empresa在本地终端测试,看看能不能正常获取响应,排除本地网络或者DNS解析的问题;
    • 打开Angular的开发者工具(F12),切换到Network标签,查看实际发送的请求地址和响应状态,有没有4xx/5xx的错误码,这能帮你定位具体问题。
  • 确认Spring Boot的路径配置
    检查Spring Boot项目里的server.servlet.context-path配置,有没有设置额外的上下文路径?如果有的话,代理配置里的路径重写也要对应调整,确保最终请求的路径和Postman里的完全一致。

内容的提问来源于stack exchange,提问作者João Junior

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:45:16