ajax로 이것 저것 만들 던 중.. 이상하게.. IE 6에서는 부드럽게 작동 하는데...
IE7 에서만..ㅜ.ㅜ 작동이 안되는 기능이 있다.
컴퓨터 사양에 따라 다르지만.. 내 컴퓨터는.. 이상하게 안되었다.
- OS : Windows XP Professional June
- Browser : IE 7
간단한 환경이긴 했지만.. 참으로 난감한 상황이였다.
이것 저곳을 찾다가 보니... IE 7에서는 XMLHttpRequest를 원래 지원 하고 있다는 글을 발견!! ^^
(구글에서 XMLHttpRequest 검색 해보면.. 엄청 나옴...ㅡㅡ;ㅋ )
그래서.. 처음에는 이부분을 지우고 하면 되는 것이었습니다.
====================================================================
if(window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if(http_request.overrideMimeType) {
http_request.overrideMimeType('text/html');
}
====================================================================
if(window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if(http_request.overrideMimeType) {
http_request.overrideMimeType('text/html');
}
====================================================================
그러나.. 생각해보니.ㅡ.ㅡ; 내가 개발한 프로그램이 모질라나.. 사파리에서 안돌아 갈것을 생각하니 버리면 안되겠다는 생각이 들어서.. 저는 다음과 같이 소스를 수정해서 쓰고 있습니다.
====================================================================
if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
try{
http_request = new ActiveXObject("window.XMLHttpRequest"); //ie7전용
}catch(e){}
}
}
} else if(window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if(http_request.overrideMimeType) {
http_request.overrideMimeType('text/html');
}
}
if(!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
=====================================================================
if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
try{
http_request = new ActiveXObject("window.XMLHttpRequest"); //ie7전용
}catch(e){}
}
}
} else if(window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if(http_request.overrideMimeType) {
http_request.overrideMimeType('text/html');
}
}
if(!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
=====================================================================
이렇게 쓰고 나서.. 밑에 값을 처리하는 부분에는
=====================================================================
if (http_request.readyState == 4) {
if (http_request.status == 0) {
result = http_request.responseText;
alert(result);
}else{
result = http_request.responseText;
alert("a");
}
}
<참고>
http_request.status의 값이 0은 Local상에 파일이 있을 경우 True가 되구요~ ^^
200인 경우에는 HTTP, 즉 웹상에 파일이 있을때.. True가 된답니다!
==================================================================
if (http_request.readyState == 4) {
if (http_request.status == 0) {
result = http_request.responseText;
alert(result);
}else{
result = http_request.responseText;
alert("a");
}
}
<참고>
http_request.status의 값이 0은 Local상에 파일이 있을 경우 True가 되구요~ ^^
200인 경우에는 HTTP, 즉 웹상에 파일이 있을때.. True가 된답니다!
==================================================================
항상.. Status 및 readyState 값을 설정 해줘야.. "페이지에 오류가 있습니다"
이 놈이 안떠요..^^
도움이 되었으면 합니다! 혹시.. 잘못된거나.. 수정 부분있으시면 과감히!! 트랙백 달아 주세요!


댓글을 달아 주세요
댓글 RSS 주소 : http://dbilove.com/tt/foleafs/rss/comment/125아~ 좋은 자료 감사합니다.
; 이렇게 사용해도 안되던데...
근데.. 전 new ActiveXObject("window.XMLHttpRequest"
그래서 new XMLHttpRequest(); 바로 호출하닌깐 되는것 같은데..(정확하지 않음..)
오류는 안뜨네요...
암튼 님덕분에 조금은 해결된듯합니다.~~^^
^^ 해결 되었다니 정말 다행이네요! ^^
저도 모르는것이 많으니.. 더 많은 질문 주시면 ㄳ~
^^