Dev/Javascript, CSS

AJAX Method Put 사용시 데이터 전송

Fehoon- 2018. 7. 5. 20:05

AJax에서 Method Put으로 데이터 전달 시

@ModelAttribute에서 값이 들어오지 않는다.

request.getParameter()를 사용해도 마찬가지였다.

다음의 방법으로 해결할 수 있다.

    contentType: 'application/json; charset=utf-8',

    data: JSON.stringify(JSONObject),

컨트롤러에서는 @ModelAttribute 대신 @RequestBody를 사용한다.

예시

$("#btn_cheering").on('click',function(){
            var cnt= Number($("#cnt_cheering").text());
            var send_nic = "${login.nicname}";
            var send_num = Number('${view.num}');
            var jsondata = {
                    "wnum" : send_num,
                    "nicname" : send_nic
                };

            if(send_nic==""){
                alert("로그인 후 응원할 수 있습니다.");    
            }else{
                 $.ajax({
                    url:'/board/cheering',
                    type:'put',                    
                    data:JSON.stringify(jsondata),
                    contentType:'application/json;charset=UTF-8',
                    success:function(data){
                                if(data){
                                    cnt=cnt+1;
                                    $("#cnt_cheering").text(cnt);
                                }else{
                                    alert("이미 응원한 게시물입니다.");
                                }
                        }            

                });   
            }
        });
반응형