본문으로 바로가기

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 함수로 처리해야 한다.

 

 

'코딩 > 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