Spring Boot接口@PostMapping失效@GetMapping可正常运行原因咨询
@PostMapping接口访问失败原因及解决方案
- 请求方法不匹配:
@GetMapping仅允许GET类型的HTTP请求访问,@PostMapping仅允许POST类型的HTTP请求访问。初学者最常见的错误是修改注解后仍然使用GET方式调用,比如直接在浏览器地址栏输入接口地址、接口测试工具未调整请求方法,此时会返回405 Method Not Allowed错误。 - 代码未生效:修改注解后未重启应用,或热部署配置异常,导致运行的仍然是带有
@GetMapping的旧代码。 - 拦截/校验规则限制:如果项目配置了Spring Security、权限拦截器或跨域规则,可能存在POST请求被拦截的情况,比如跨域配置未放开POST方法、CSRF校验开启但请求未携带对应token,都会导致访问失败。
- 环境限制:部分网关、反向代理或防火墙限制了POST请求的提交,可以直接调用本地服务端口测试,排除环境因素。
验证方式
使用接口测试工具(Postman、Apifox等)时,将请求方法调整为POST后再调用接口即可正常返回。使用curl测试的命令参考:
curl -X POST http://<你的服务IP>:<端口>/helloWorld
修改后的正确代码示例:
@RestController public class HelloWorldController { @PostMapping(path="/helloWorld") public String helloWorld() { return "Hello-World"; } }
内容的提问来源于stack exchange,提问作者Roshan Choudhary
相关产品推荐
相关产品推荐

