본문 바로가기
  • 일하면서 배운 내용 끄적이는 블로그
오류 수정 기록

405 (Method Not Allowed)

by dhl7799 2024. 3. 14.

405 에러는 프론트와 백 간의 통신중 method에 문제가 있을때 발생하는데

허용되지 않은 method로 리소스 접근을 시도하면 발생한다.

 

이번에 해당 문제가 발생한 이유는

프론트에서 form 태그 안에 method는 PUT으로, action으로 URL이 설정되어 있는 상태로

input type="submit"이 아닌 input type="button"을 사용중이고

onclick 속성을 통해 

var form = document.getElementById("myForm");
form.submit();

 

해당 방식이 아니라 별도로 ajax를 활용한 방식으로 통신을 시도하고 있었는데

ajax는 또 type : 'POST' 로 설정되어있었다.

 

마지막으로 Controller 부분은 @RequestMapping(method = {RequestMethod.PUT } 으로 선언되어 있어서

 

요약하자면

form 태그 - PUT, ajax - POST, Cotroller - PUT으로 설정되어있는 이상한 상태였다

(내가짠거 아님..)

 

이 상태로는 저장버튼을 누를시 제대로 저장완료 메세지는 나오지 않았는데

웃기게도 반영은 또 된다

 

수정방법은 form 태그에서 method와 action 속성을 빼버렸고(어차피 통신은 ajax로 하니까)

ajax는 POST 그대로 유지

Controller의 RequestMethod를 POST로 변경하였다