[ AJAX 통신시 컨트롤러에서 한글 문자열을 리턴해야할 경우 인코딩 문제 ]
자바스크립트에서 비동기로 ajax로 컨트롤러로 요청을 받아 db에서 값을 꺼내 문자열을 리턴할 경우, 한글 문자열을 리턴했을 때
ajax의 success:function(result) 안에서 result로 값을 받으면 ???? 로 한글이 깨지는 경우가 있다.
이럴 경우에는 컨트롤러에서 produces 부분을 지정해주면 된다.
코드를 보면
먼저, ajax 통신 부분이다. /board/category/getAddr로 요청을 보내고
컨트롤러 부분이다.
컨트롤러에서 service.getAddr(userId)로 해당 사용자의 주소를 얻어온 뒤 그 주소를 반환하지만 한글로 반환하게 된다.
이 경우, ajax의 success:function(result) 에서 result 가 ????로 깨지는 것을 알 수 있다.
하지만, produces = "application/text;charset=utf8"을 지정해 줄 경우 한글을 인코딩해 보내서 깨지지 않고 처리할 수 있게 된다.
'개발 > 스프링' 카테고리의 다른 글
스프링과 안드로이드 연동1(Html 소스 가져오기) (0) | 2017.06.03 |
---|---|
스프링에서 구글맵 연동하기 (2) | 2017.05.31 |
AJAX를 동기화, 비동기화 지정하는 방법(동기<순서대로>로 작업하는 예제) (0) | 2017.05.31 |
handlebars js 라이브러리를 이용한 View 표현하기 (1) | 2017.05.31 |
sitemesh 추가하기 (0) | 2017.05.11 |