1. 程式人生 > 其它 >Request method 'GET' not supported.

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