错误场景:今天使用SpringBoot编写登入和注册的时候一直报错org.springframework.web.HttpRequestMethodNotSupportedException: Request method ‘GET’ not supported,405,我当时就奇怪了为什么我用Post方法,为什么会出现一个Get请求不被支持

关键代码:
var serverUrl = app.globalData.serverUrl;
// 调用后端登录注册
uni.request({
method: “POST”,
url: serverUrl + “/passport/login”,
data: {
“mobile”: mobile,
“smsCode”: verifyCode
},
success(result) {
var status = result.data.status;
if (status == 200) {
var userInfo = result.data.data;
app.setUserInfoSession(userInfo);
app.setUserSessionToken(userInfo.userToken);
// 登录成功,关闭当前页
// me.close();
uni.reLaunch({
url: “…/me/me”
})
} else if (status != 200) {
uni.showToast({
title: result.data.msg,
icon: “none”,
duration: 3000
});
}
}`
在这里插入图片描述
看了很多博客,各种解决方法

版本问题【这个不好评价】

把POST方法改为Get方法【这个我已经无力吐槽了,POST和GET方法的区别,不懂的萌新自己去查】

最后还是别人的一句评论让我解决了这个方法

将@POSTMapping改为@RequestMapping

附加,一个为什么勉强可以解释为什么可以解决这个问题的原因

@GetMapping
用于将HTTP GET请求映射到特定处理程序方法的注释。具体来说,@GetMapping是一个作为快捷方式的组合注释
@RequestMapping(method = RequestMethod.GET)。

@PostMapping
用于将HTTP POST请求映射到特定处理程序方法的注释。具体来说,@PostMapping是一个作为快捷方式的组合注释@RequestMapping(method = RequestMethod.POST)。

@RequestMapping:
一般情况下都是用@RequestMapping(method=RequestMethod.),因为@RequestMapping可以直接替代以上两个注解,但是以上两个注解并不能替代@RequestMapping,@RequestMapping相当于以上两个注解的父类!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐