var AJAX = {
         XmlHttp: null,
         create: function () {
                 try {
                         if (window.XMLHttpRequest) {
                                 AJAX.XmlHttp = new XMLHttpRequest();
                                 // 일부의 모질라 버전을은 readyState property,
                                 // onreadystate event를 지원하지 않으므로. - from xmlextrs
                                 if (this.XmlHttp.readyState == null) {
                                         this.XmlHttp.readyState = 1;
                                         this.XmlHttp.addEventListener("load", function () {
                                             this.XmlHttp.readyState = 4;
                                             if (typeof this.XmlHttp.onreadystatechange == "function")
                                                    tmpXmlHtp.onreadystatechange();
                                         }, false);
                                 }
                         } else {
                                 AJAX.XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                         }
                 }
                 catch (e) {
                         alert("Your browser does not support XmlHttp objects");
                         //throw new Error("Your browser does not support XmlHttp objects");
                 }
         }
 }
 
 
 AJAX.openXML =  function (method, url, async, uname, pswd) {
         if (AJAX.XmlHttp != null) {
                 if (uname == undefined) {
                         AJAX.XmlHttp.open(method, url, async, uname, pswd);
                 } else {
                         AJAX.XmlHttp.open(method, url, async);
                 }
                 AJAX.XmlHttp.onreadystatechange = function () {
                         if (AJAX.XmlHttp.readyState == 4) {
                                 if (AJAX.XmlHttp.status == 200) {
                                   // 200 은 HTTP에서 성공 i.e) 404 : not found
                                         AJAX.statusSuccessHandler(AJAX.XmlHttp.responseXML.xml);
                                 } else {
                                         AJAX.statusErrorHandler();
                                         alert('Error while loading!');
                                 }
                         }
                 }
         } else {
                 alert ("need to create xmlhttp object");
         }
 }
 
 
 AJAX.openText =  function (method, url, async, uname, pswd) {
         if (AJAX.XmlHttp != null) {
                 if (uname == undefined) {
                         AJAX.XmlHttp.open(method, url, async, uname, pswd);
                 } else {
                         AJAX.XmlHttp.open(method, url, async);
                 }
                 AJAX.XmlHttp.onreadystatechange = function () {
                         if (AJAX.XmlHttp.readyState == 4) {
                                 if (AJAX.XmlHttp.status == 200) {
                                   // 200 은 HTTP에서 성공 i.e) 404 : not found
                                         AJAX.statusSuccessHandler(AJAX.XmlHttp.responseText);
                                 } else {
                                         AJAX.statusErrorHandler();
                                         alert('Error while loading!');
                                 }
                         }
                 }
         } else {
                 alert ("need to create xmlhttp object");
         }
 }
 
 
 AJAX.send = function (content) {
                 if (content == undefined)
                         AJAX.XmlHttp.send(null);
                 else
                         AJAX.XmlHttp.send(content);
 }
 
 
 AJAX.setOnReadyStateChange = function (funcname) {
                 if (AJAX.XmlHttp) {
                         AJAX.XmlHttp.onreadystatechange = funcname;
                 } else {
                         alert ("need to create xmlhttp object");
                 }
 }
 
 
 // status 200 일 때 처리 함수
 AJAX.statusSuccessHandler = function (data) {
                 alert(data);
 }
 
 
 AJAX.setStatusSuccessHandler = function (funcname) {
                 AJAX.statusSuccessHandler = funcname;
 }
 
 
         // status 200 일 때 기본 처리 함수
         // setStatusSuccessHandler() 로 대체 가능
 
 
 AJAX.statusErrorHandler = function (status) {
                 AJAX.rtnText = AJAX.XmlHttp.responseText;
 }
 
 
 AJAX.setStatusSuccessHandler = function (funcname) {
                 AJAX.statusSuccessHandler = funcname
 }
 
 
 AJAX.setStatusErrorHandler = function (funcname) {
                 AJAX.statusErrorHandler = funcname
 }
 
 
 AJAX.setRequestHeader = function (label, value)
 {
         AJAX.XmlHttp.setRequestHeader(label, value);
 }
 
 
 // 사용법
 //        AJAX.create();
 //        AJAX.openText('GET','jsontest.php', true);
 //        AJAX.setStatusSuccessHandler(proc);
 //        AJAX.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 //        AJAX.send("test=테스트");
 //
 //        function proc(abc)
 //        {
 //                document.getElementById('test').innerHTML = abc;
 //        }
 
 
 출처 : 
 http://www.oraclejava.co.kr/zboard/view.php?id=php&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum
 &desc=asc&no=39
2006/02/25
동적 웹페이지를 위한 기본 AJAX 클래스 코드
가장 많이 본 글
- 
MSDPM 원본에서 이벤트 ID 945에 대한 설명을 찾을 수 없습니다. 이 이벤트를 발생시킨 구성 요소가 로컬 컴퓨터에 설치되어 있지 않거나 설치가 손상되었습니다. 로컬 컴퓨터에서 구성 요소를 설치 또는 복구할 수 있습니다. 이벤트가 다른 컴퓨터에서...
- 
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\c...
- 
Newsgroups: microsoft.public.kr.asp.qna Sent: Thursday, December 09, 2004 3:10 PM Subject: Re: 윈도2003에서 Dext 지원 안되나요? 보아하니.... 디렉토리 쓰기 권한 때문...
댓글 없음:
댓글 쓰기