Request method 'GET' not supported.
1.我遇到的问题
最近在练习一个简单的SpringBoot增删查改小案例,其中在写“注册”接口时,遇到如下的错误:
(1)页面报错:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Fri Aug 06 08:34:13 CST 2021
There was an unexpected error (type=Method Not Allowed, status=405).
(2)控制台报错:
Request method 'GET' not supported.
其中注册接口中如下:
//2.开发用户注册
@PostMapping("/regist")
public String regist(User user, String code, HttpSession session){
System.out.println("user===>" + user);
//1.判断验证码是否通过
if (session.getAttribute("code").toString().equalsIgnoreCase(code)){ //通过了才注册奥!
userService.save(user);
return "redirect:/ems/login.jsp"; //通过了跳到登录页面
}else {
return "redirect:/ems/regist.jsp"; //不通过回到注册页面
}
}
前端代码如下:
<form action="${pageContext.request.contextPath}/user/regist" method="post">
常见的状态码有哪些?
① 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
② 404:(客户端问题)请求的资源没有找到,说明客户端错误的请求了不存在的资源;
③ 500:(服务端问题)请求资源找到了,但服务器内部发生了不可预期的错误;
④ 301/302/303:(网站搬家了,跳转)重定向
⑤ 304: Not Modified,代表上次的文档已经被缓存了,还可以继续使用。如果你不想使用本地缓存可以用Ctrl+F5 强制刷新页面
2.分析:
很显然我遇到的错误是405,即:不允许使用此方法,也就是不允许我使用get方法。但是我明明使用的是post方法啊,接口里
使用@PostMapping注解,前端表单代码里的方法也是post类型的,搞不清楚。
3.解决办法:
将接口里的@PostMapping注解改成@RequestMapping注解,然后将前端代码的post改为get,就行了。
4.遗留问题:
本应该通过接口路径去访问注册页面的:
http://localhost:8080/ems/user/regist 但是用这个路径还是一直报405的错误。
最后用下面的路径(静态路径)访问并注册成功了:
http://localhost:8080/ems/ems/regist.jsp
5.总结:
看来问题还是没有解决,不是get/post的问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示