이슈
JavaScript Ajax 통신의 기존 방식의 코드에서, 크롬환경에서는 이상이 없으나
ie 환경에서 데이터를 get 통신 ( query 입력 값 ) 을 하는 과정에서는 ? (Special Character) 가 전달되었다.
기존 코드
var surveyInfo = "";
for (var i = 0; i < s.length; i++) {
surveyInfo = surveyInfo + s[i][0] + ",";
surveyInfo = surveyInfo + s[i][1] + ",";
}
surveyInfo = surveyInfo.slice(0, -1);
$.ajaxSetup({cache:false});
$.get('save_survey.jsp?surveyinfo='+ surveyInfo, function(data) {
console.log(data);
});
surveyInfo 를 가져오는 과정에서, 크롬은 url 이동 시 자동으로 utf-8로 변환해서 이동한다.
그런데 ie는 입력된 한글 문자열 그대로 입력되었다.
Chrome : ?surveyInfo=안녕%20하세요%20
> 복사 & 붙여넣기시 유니코드로 변환되어진다.
Ie : ?surveyInfo=안녕 하세요
해결
JavaScript 에 내장되어있는 변환메소드인 escape를 이용하여
url 이동 시 유니코드로 변환 후 이동하도록 하였다.
$.get('save_survey.jsp?surveyinfo='+ escape(surveyInfo), function(data) {
console.log(data);
});