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로 변경하였다
'오류 수정 기록' 카테고리의 다른 글
Unsupported major.minor version 52.0 (0) | 2024.07.30 |
---|