IE console.log 버그

F12로 콘솔창을 띄울 땐 잘되고, 안 띄울땐 에러가 나거나 실행이 안되는 문제

콘솔창을 띄우지 않으면 console 객체가 로드 되지 않기 때문이다.
이런경우 자바스크립트 에러가 나지만 인지 되지 않는 경우가 많다.
절대로 console.log를 그냥 사용하지 말라. 반드시 IE를 위해 다음 코드를 삽입하라.


// Avoid `console` errors in browsers that lack a console.
(function() {
var method;
var noop = function noop() {};
var methods = [
'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
'timeStamp', 'trace', 'warn'
];
var length = methods.length;
var console = (window.console = window.console || {});

while (length--) {
method = methods[length];

// Only stub undefined methods.
if (!console[method]) {
console[method] = noop;
}
}
}());

IE8 이하에서의 AJAX 문제 해결 방법

전역 AJAX 설정 변경
$.ajaxSetup({
‘cache’:false
});
$.support.cors = true;

서버사이드에서는 Content-Type과 Charset을 정확히 명시
Content-Type:text/xml
charset:utf-8 (소문자 유의)

DOCTYPE을 HTML5로 하면 안된다.

IE상에서 console을 찍어보고 네트워크 에러가 나거나 error 루틴을 타게 되면 아예 데이터를 못가져오는 것이므로 Cross-domain 문제일 확률이 크고, success 루틴을 타는 경우 일단 값은 잘 가져온 것이므로 위의 경우로 해결되는 경우가 많다.