Chaeyeon0 / GreenDay_Study

여은개의 공부 일지
0 stars 0 forks source link

[20240522] 게시판 삭제기능 405 에러 해결 #20

Open janghw0126 opened 1 month ago

janghw0126 commented 1 month ago

게시판 삭제기능 구현 에러 드뎌 해결,,🥹🥹

image 게시판 삭제 기능을 구현하는 도중에 자꾸 405 에러가 떴다. 해당 에러는 클라이언트가 서버에게 보낸 요청에 대해 서버가 허용되지 않은 메소드를 사용하려고 시도했을 때 나타난다.

405 에러가 발생했을 때 해결 방법은 다음과 같다.

🧐405 에러 해결 방법

  1. HTTP 메소드 사용 : 요청한 리소스에 대해 허용되는 메소드를 사용하도록 한다. 대부분의 경우, 웹 어플리케이션은 특정 리소스에 대해 어떤 메소드를 허용하는지 제한하므로 잘 확인해야 된다.
  2. 서버 구성 확인 : 서버가 올바른 메소드를 처리할 수 있도록 서버 설정을 확인한다. 즉, 메서드를 명시적으로 설정해야 한다 !
  3. CORS 설정 : 클라이언트가 다른 도메인의 리소스에 접근하는 경우, 해당 도메인에서 CORS 설정이 올바르게 구성되어 있는지 확인해야 한다.
  4. HTTP 메서드 및 url 확인 : 클라이언트가 요청한 url 과 메서드가 정확한지 다시 한번 확인한다.

이렇게 수정사항을 참고해서 코드를 변경을 해도 자꾸 image 똑같은 오류이길래 이 자식 또 자꾸 나를 집착하네 생각했다.

그래서 요 며칠 계속 찾아보고 수정하고 또 찾아보고 오류내고 수정한 결과, 내 코드처럼 PUTDELETE 요청을 @PutMapping, @DeleteMapping을 입력해서 사용할 경우 application.properties에 아래 코드를 추가해줘야 된다고 한다.

spring.mvc.hiddenmethod.filter.enabled=true

이렇게 적용하고 테스트를 해본 결과,

image image image 삭제 기능이 드디어 해결이 되었다. 그런데,,이렇게 삭제 기능은 해결은 했는데 갑자기 수정 기능이 제대로 작동하지 않았다..!! ㅠ

image 405 이 자식 내 성격을 어디까지 파탄나게 할려고

암튼 오류 메시지를 해석해보니 PUT HTTP 메서드를 사용하여 요청을 보냈지만, 서버 쪽에서 해당 메서드를 처리하는 엔드포인트가 정의되지 않아서 발생한 것이라고 한다.

그래서 PUT 메서드를 처리하는 엔드포인트 코드를 추가하였다. → 근데 분명 PUT 메서드를 쓰면 수정 기능에서 오류가 나가지고 PUT 대신에 POST를 썼는데 또 PUT를 쓰란다…일단 PUT으로 메서드를 변경해 보았다.

 /* 게시글 수정 (PUT 메서드로 변경) */
    @PutMapping("/post/edit/{id}")
    public String update(@PathVariable("id") Long id, @ModelAttribute BoardDto boardDTO) {
        boardDTO.setId(id); // 업데이트할 게시글 번호 설정
        boardService.savePost(boardDTO);
        return "redirect:/";
    }

그랬더니 image image image ? 아니….이게 되네……????…….🤔 수정도 잘 되었다는 것을 확인할 수 있었고… image 삭제도 잘 되었다는 것을 확인할 수 있었다.. image DB에도 잘 적용이 된 것을 확인했다…

아마도 이 전에도 자꾸 405 오류가 났던 이유는 PUT 메소드를 특정 웹에서는 지원을 안해주는 것은 맞지만, 그보다 더 큰 원인이였던 것은 properties 확장파일에 spring.mvc.hiddenmethod.filter.enabled=true 코드를 추가하지 않아서 생긴 문제였던 것 같다.

암튼 삭제 기능 405 오류를 드뎌드뎌드뎌어 해결했다,,,.!!!!

이제 해결해야 될 부분은

..... ...홧팅........ㅎ

khw010419 commented 1 month ago

오 .... ㅏ......진짜 이걸 해내는 우리 혜원................ 수고했어요 ㅠ