-
ajax에서 JSON.stringify로 넘긴 파라미터를 서버에서 @RequestBody로 받기.프로그래밍 언어/자바 & 코틀린 2018. 1. 21. 18:01
평소 ajax를 사용할 때, dataType을 json으로 선언만 하고, 넘길 파라미터를 Map에 담아서 넘겼었다.
근데 담긴 Map을 json 문자열로 변형하여 넘기는 코드를 봤다.
서버에서 파라미터가 담긴 Map을 @RequestParam을 이용해 그냥 받으려고 했더니 자꾸 에러가 떴다.
123456789$.ajax({type: "POST",url: "<c:url value='/practice/jsonStringifyTest'/>",dataType: 'json',data: JSON.stringify({"startDate": startDate, "endDate": endDate}),contentType:'application/json; charset=utf-8',success: function(data){alert("JSON.stringify로 파라미터로 넘기기 성공!" + data.result);}cs 위와 같은 코드를 @RequestParam으로 서버에서 받을 수가 없었다.
@RequestBody를 이용하면 받을 수 있다는 것을 찾아냄!
(왠지 @ResponseBody는 json형태로 반환하니 그걸 받는 형태가 있을거라고 생각했다.)
123456789@RequestMapping(value="/practice/jsonStringifyTest")public ModelAndView jsonStringifyTest(@RequestBody Map<String, Object> params, HttpServletRequest request){ModelAndView mv = new ModelAndView();boolean result = true;mv.addObject("result", result);mv.setViewName("/practice/jsonStringifyTest.jsp");return mv;}cs 결론은 JSON.stringify(json문자열)로 넘어온 파라미터는 서버에서 @RequestBody를 이용하면 받을 수 있다는 것.
'프로그래밍 언어 > 자바 & 코틀린' 카테고리의 다른 글
Exception 발생해도 원하는 파라미터 return하는 방법 (0) 2018.02.25 서버에서 json형태로 return하는 방법. (1) 2018.01.21 스프링에서 @RequestParam 사용 (0) 2017.12.10 String을 잘라 배열로 만들 수 있는 split (0) 2017.11.21 배열 대신 String으로 받은 parameter를 split을 이용해 체크박스 복수 삭제 기능 구현 (0) 2017.11.21