최근에 ajax를 사용하여 서버 프로그램을 개발 중인데 IE 브라우저가 xmlhttprequest 개체를 지원하지 않고 Microsoft.XMLHTTP 컨트롤을 찾을 수 없다는 것을 발견했습니다.
해결해야 할 문제가 발생합니다. 해결 방법은 다음과 같습니다.
1. regsvr32 msxml3.dll을 실행합니다.
2. 기성 프레임워크를 사용하여 Ajax를 수행합니다.
3. 코드 최적화:
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
그렇지 않은 경우(window.XMLHttpRequest)
{
xmlHttp = 새로운 XMLHttpRequest();
}
if(handle_s == null)
handler_s = "bin/normal.py/db";
this.xmlHttp.onreadystatechange = handler_l;
this.xmlHttp.open("GET",handle_s,true);
this.xmlHttp.send(null);
또는 브라우저 결정
var agt = navigator.userAgent.toLowerCase();
var is_ie = (agt.indexOf("msie") != -1);
var is_ie5 = (agt.indexOf("msie 5") != -1);
var is_opera = (agt.indexOf("opera") != -1);
var is_mac = (agt.indexOf("mac") != -1);
var is_gecko = (agt.indexOf("gecko") != -1);
var is_safari = (agt.indexOf("safari") != -1);
function CreateXmlHttpReq(handler) {
var xmlhttp = null;
만약 (is_ie) {
// ie5 또는 ie6이 보장됩니다.
var control = (is_ie5) ? "Microsoft.XMLHTTP": "Msxml2.XMLHTTP"
;
xmlhttp = 새로운 ActiveXObject(컨트롤);
xmlhttp.onreadystatechange = 핸들러;
} 잡기 (예) {
// TODO: 더 나은 도움말 메시지
Alert("Active 스크립팅과 ActiveX 컨트롤을 활성화해야 합니다.");
}
} else {
// 모질라
xmlhttp = 새로운 XMLHttpRequest();
xmlhttp.onload = 핸들러;
xmlhttp.onerror = 핸들러
}
xmlhttp를 반환;
}
또는
http://www.cnblogs.com/skylaugh/archive/2006/11/20/566164.html