Spring Boot @RequestMapping POST方法报错: Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]
Spring Boot @RequestMapping POST方法报错: Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]
这个错误表示你的代码中使用了POST方法,而在请求时使用了其他方法,如GET方法。
常见原因:
- 代码错误: 代码中定义了POST方法,但实际请求使用的是GET方法。
- 配置错误: Spring Boot应用程序的配置中可能没有正确设置允许POST方法的请求类型。
解决方法:
-
检查请求方法: 确保你的代码中使用的请求方法与实际请求方法一致。例如,如果你的代码中使用的是
@RequestMapping(method = RequestMethod.POST),那么实际请求方法也应该是POST方法。 -
检查Spring Boot配置: 确保Spring Boot应用程序的配置中允许POST方法。可以使用以下两种方法设置允许的请求类型:
- 在application.properties或application.yml中设置:
spring.mvc.allowed-methods=GET,POST,PUT,DELETE
* **在`WebMvcConfigurer`接口中设置:**java
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("")
.allowCredentials(true);
}
```
示例代码:
@RequestMapping(value = "/queryOrderStatus", method = RequestMethod.POST, params = {"orderSn"})
@ResponseBody
public String queryOrderStatus(String orderSn){
String result = tradeService.alipayTradeQuery(orderSn);
if (StringUtils.isEmpty(result)){
return '查询失败';
} else {
if (result.equals('查询返回该订单支付成功')) {
orderService.updateOrderStatus(Integer.parseInt(orderSn), '已付款');
}
return result;
}
}
总结:
这个错误通常是由于请求方法不匹配导致的。通过检查代码和配置,确保请求方法和允许的请求类型一致,即可解决这个问题。
原文地址: https://www.cveoy.top/t/topic/ohjy 著作权归作者所有。请勿转载和采集!