Internet Explorer 8 브라우저에서 AJAX 동작 시 "undefined은 null 이거나 개체가 아닙니다" 라는 오류 메시지 발생.
IE9에서도 발생할 것 같다.
success는 이루어지지만 결과값을 리턴 받지는 못한다.
모두 테스트하지는 않았지만 다른 브라우저에서는 오류가 없다.
오류가 발생한 코드(js)
$.ajax({
type: "POST",
url: "ajaxPaymentHp.php",
data: data,
dataType: "text",
async: false,
cache: false,
success: function(rtn) {
result = rtn;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
request 를 받고 응답하는 ajaxPaymentHp.php
<?
...(생략)...
echo iconv('euc-kr', 'utf-8', $goods_id.'|'.$Prdtnm.'|'.$Prdtprice);
해결 방법
<?
...(생략)...
header("Content-type: text/html; charset=utf-8");
echo iconv('euc-kr', 'utf-8', $goods_id.'|'.$Prdtnm.'|'.$Prdtprice);
Note
본문에서는 헤더에 Character Set을 설정하는 방법으로 해결하였지만,
구글링을 해 보면 해결책으로 제시하는 방법이 각양각색이다.
- DOM 로딩 문제이기 때문에 반드시 <head> 부분에서 js를 호출해야 한다.
- DOM 구조 문제이기 때문에 태그가 열리고 닫히는 부분을 다시 확인해야 한다.
- AJAX의 속성을 추가로 지정하고 success는 Callback 함수로 처리해야 한다.
참고 사이트.
- http://stackoverflow.com/questions/11168378/jquery-ajax-undefined-data-returned-in-ie9
'코딩 > JavaScript & jQuery' 카테고리의 다른 글
HTML 특수문자 코드표 (0) | 2015.07.01 |
---|---|
javascript keycode 정리 (0) | 2015.07.01 |
JQuery / Selector (0) | 2015.05.18 |
JavaScript가 IE11을 판별하지 못하는 경우 (0) | 2014.10.01 |
AJAX 비동기 통신으로 데이터 통신 (0) | 2012.01.17 |