본문 바로가기
카테고리 없음

[spring boot ajax error] com/fasterxml/jackson/annotation/JsonIncludeProperties 해결방법

by 작은소행성 2021. 4. 16.

com/fasterxml/jackson/annotation/JsonIncludeProperties

 

 

 

나의경우 ajax에서 보내는 json 값과

controller에서 받는 쪽에서 타입이 맞지않아 생기는 현상이였다

 

 

 

ajax 보내는 쪽 코드

 

 

  function formsendfunc(){
            var formid = $('#formid').serializeArray();  //동적 입력된 값도 들어옴 // form name태그 필수
            var obj = {};
            var paramval = "";
            var dataval="";

            //api 이름 제외하고싶으면 i=1부터 시작하면됨
            for (var i=0;i<formid.length;i++){
                if(i <=2){ //servicekey값까지는 name입력
                    obj[formid[i]['name']] = formid[i]['value'];
                }else {
                    if(i % 2 == 1){ //홀수일경우 파라메터 이름
                        paramval = formid[i]['value'];

                    }else{ //짝수일경우 파라메터 값
                        dataval = formid[i]['value'];
                    }
                }
                obj[paramval] = dataval;
            }

            var formjson = JSON.stringify(obj);

            console.log(' formid > ',formid," obj > ",obj,', formjson> ',formjson);

            //ajax 실행하면 Exception Processing ErrorPage[errorCode=0, location=/error] 에러남
            //request가 알려준 content type에 맞는 response 를 생성할 수 없기 때문에 발생

            $.ajax({
                type : "post",
                url : "/openparam2",
                data : obj,
                datatype:'json',
                success : function(data){
                    console.log("success > ",data);
                    showapi(data);
                },
                error:function (xhr, status, error){
                    console.log(error,xhr,status);
                }
            });//ajax

        }

 

 

 

 

 

 

에러가 발생한 코드 

    @RequestMapping(value="/openparam1",method =  RequestMethod.POST)
    @ResponseBody
    public Map<String,String> openParam1(HttpServletRequest request, @RequestParam LinkedHashMap params) throws Exception {
  }
  

 

 

 

 

해결한 코드

    @RequestMapping(value="/openparam2",method =  RequestMethod.POST)
    @ResponseBody
    public String openParam2(HttpServletRequest request, @RequestParam LinkedHashMap params) throws Exception {
    
    }

 

 

 

 Map<String,String> 을 String 으로 바꿔서 사용

 

 

 

 

반응형