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的問題。









免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM