프로그래밍/ASP, Javascript
XMLHTTP를 이용해서 값을 넘길경우 수신측에서 개행문자를 인식못할 경우
멍멍대왕
2010. 11. 12. 10:47
아직 잘 몰라서 그렇겠지만...
테스트 결과로는 POST 방식도 마찬가지였다.
xmlHttp.open("GET","aaa.asp?process_contents='+ eval('document.frm.contents_'+b_code+'.value'), true);
xmlHttp.send();
위에서 eval('document.frm.contents_'+b_code+'.value')은 동적으로 생성되는 텍스트박스다.
이 경우에 alert를 찍어주면 분명히 개행문자가 보인다. 그러다 aaa.asp에서는 개행문자를 인식하지 못하는 상황이 발생을 했다.
한참을 해결책을 찾아보았으나, 근본적인 원인을 검색하는데에 실패하여, 다음과 같이 처리했다.
xmlHttp.open("GET","aaa.asp?contents='+ eval('document.frm.contents_'+b_code+'.value').replace(/\n/gi,"[$]"), true);
xmlHttp.send();
위의 붉은색 부분이 추가되었는데, \n인 개행문자를 [$]로 치환한다.
그리고
aaa.asp에서는
contents = request("contents")
contents = replace(contents,"[$]",chr(13))
와 같이 치환하여 DB에 입력하는 방식을 선택했다.