새소식

Programming/Solving Errors

because the scheme does not have a registered handler

 

 

 

에러

 

게시글 삭제 처리(테이블 수정) 후 redirect 과정에서 발생한 에러

 

 

발생 원인

 

// jsp 코드
$("#btnDelete").click(function(e) {
    e.preventDefault();
    const val = confirm("게시글을 삭제하시겠습니까?");
    if (val == true) {
        $.ajax({
            "type" : "patch",
            "url" : "/userboard/delete/${userBoardVo.bno}",
            "success" : function(rdata) {
                location.href = rdata;
            }
        });
    }
});

 

// java 코드
@ResponseBody
@RequestMapping(value = "/delete/{bno}", method = RequestMethod.PATCH)
public String deleteArticle(@PathVariable int bno) {

    // delete_yn = 'Y'로 처리(update)
    userBoardService.deleteArticle(bno);

    return "redirect:/userboard/list";
}

 

게시글 삭제처리를 하는 과정에서 테이블 수정이 이루어진 후

forward가 아닌 redirect로 처리하려 했는데 위와 같은 에러 발생.

 

검색해 보니 보안상의 이유로 인한 메커니즘이나

user agent가 임의로 변경된 환경을 지원하지 않아 발생한다고 하는데

나의 경우 코드를 다시 잘 들여다보니 아주 간단한 문제였다.

 

비동기방식으로 url 주소값을 리턴하고, jsp에서 그 주소값으로 페이지 이동을 하는 구조인데

redirect가 들어가면서 페이지 이동 처리가 불가능했던 것.

 

 

해결

 

@ResponseBody
@RequestMapping(value = "/delete/{bno}", method = RequestMethod.PATCH)
public String deleteArticle(@PathVariable int bno) {

    // delete_yn = 'Y'로 처리(update)
    userBoardService.deleteArticle(bno);

    return "/userboard/list";
}

 

redirect를 지우니 원활한 페이지 이동이 가능해졌다.

수없이 발생하는 에러는 높은 확률로 사소한 부분의 수정으로 해결된다는 걸 또다시 느꼈다..

 

Contents

Copied URL!

Liked this Posting!