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

Angular 5 调用Spring Boot接口POST请求出现404错误求助

解决Angular 5 POST请求404(代理未生效)问题

嘿,我来帮你搞定这个404的坑!看起来你的代理配置大概率没生效,或者有几个容易忽略的细节没做到位,咱们一步步排查解决:

1. 先确认代理配置的基础正确性

  • 检查文件位置:确保proxy-config.json和package.json在项目根目录(也就是和src文件夹同级),如果放在子文件夹里,ng serve会找不到这个配置文件,代理自然不会工作。
  • 校验JSON格式:你的配置内容看起来没问题,但可以再检查下有没有多余的逗号或者语法错误——JSON格式很严格,哪怕一个小错误都会导致配置失效。

2. 必须重启Angular开发服务器

修改package.json里的start命令后,一定要关掉正在运行的ng serve进程,重新执行npm start。旧的服务进程不会自动加载新的代理配置,这是很多人踩过的坑!

3. 验证Spring Boot服务端点是否正常

先抛开Angular,直接用Postman或者curl测试Spring Boot的接口:
发送POST请求到http://localhost:8080/logging,带上你要提交的JSON body。如果这个请求本身就返回404,那问题出在Spring Boot服务端:

  • 检查Controller的@PostMapping路径是不是/logging(有没有多写前缀比如/api)
  • 确认Controller类上的@RequestMapping前缀有没有影响最终路径
  • 检查服务是不是真的在8080端口运行

4. 检查Angular的HTTP请求配置

  • 确保导入HttpClientModule:Angular 5使用的是HttpClient(不是旧的Http),你需要在AppModule里导入HttpClientModule并添加到imports数组中。
  • 配置正确的请求头:你的httpOptions必须包含Content-Type: application/json,否则Spring Boot可能无法解析JSON请求体。示例代码:
import { HttpHeaders } from '@angular/common/http';

const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type':  'application/json'
  })
};

5. 查看代理日志确认转发情况

你的代理配置里设置了"logLevel": "info",重启npm start后,终端会输出代理的日志信息。当你点击按钮触发请求时,如果终端出现类似[HPM] POST /logging -> http://localhost:8080的日志,说明代理已经在正常转发请求了——这时候如果还是404,100%是Spring Boot服务端的端点问题。如果没有看到这条日志,说明代理没生效,回到步骤1和2重新检查。

按照这些步骤排查下来,应该就能解决你的404问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:51:58