AJAX Sample Code

|

// XML Object 생성

function getXMLHttpObject() {
 var xmlobj = false;
 if(window.XMLHttpRequest) {
  //Non-MS Browser
  xmlobj = new XMLHttpRequest;
 } else if(window.ActiveXObject) {
  try {
   xmlobj = new ActiveXObject("Msxml2.XMLHTTP");
  } catch(e1) {
   try {
    xmlobj = new ActiveXObject("Microsoft.XMLHTTP");
   } catch(e2) {
    //Cannot create XMLHTTP object
    alert("XMLHTTP 객체를 생성하는데 실패하였습니다.");
   }
  }
 }
 return xmlobj;
}

//AJAX액션 시작

function enqueryAddr() {
 xmlobj = getXMLHttpObject();

 //상태가 바뀌면 작동될 함수 설정
 var handlerfunc = getReadyStateHandler(xmlobj, gotXML);
 xmlobj.onreadystatechange = handlerfunc;
 
 xmlobj.open("POST","zipcode_addr.asp",true); //리퀘스트 오픈
 xmlobj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

 //인코드형식 지정
 xmlobj.send("addr="+addr); //리퀘스트 전송
}


//상태가 바뀌면 실행되는 함수

function getReadyStateHandler(xmlobj, responseXMLHandler) {
 return function(){
  if(xmlobj.readyState == 4) { //4가 응답이 온 경우
   if(xmlobj.status == 200) { //HTTP 200. 정상일 경우 핸들러 함수 호출
    responseXMLHandler(xmlobj.responseXML);
   } else if(xmlobj.status != 0){
    alert("HTTP Error : "+xmlobj.status); //200이 아니면 HTTP오류.
   }
  }
 }
}


//XML데이터 핸들링

function gotXML(xml) {

//여기서 xml개체를 가지고 데이터를 뽑아내면 된다.

//xml.getElementsByTagName()이나 하위노드의 firstChild.nodeValue 속성 이용.

}


한글일 경우 인코딩 문제로 제대로 표시가 안되는데,

javascript에서 encode()로 변환하여 보내서 ASP에서 아래와 같은 함수로 받으면 된다.

Function URLDecode(Expression)
 Dim strSource, strTemp, strResult, strchr
 Dim lngPos, AddNum, IFKor
 strSource = Replace(Expression, "+", " ")
 For lngPos = 1 To Len(strSource)
  AddNum = 2
  strTemp = Mid(strSource, lngPos, 1)
  If strTemp = "%" Then
   If lngPos + AddNum < Len(strSource) + 1 Then
    strchr = CInt("&H" & Mid(strSource, lngPos + 1, AddNum))
    If strchr > 130 Then
     AddNum = 5
     IFKor = Mid(strSource, lngPos + 1, AddNum)
     IFKor = Replace(IFKor, "%", "")
     strchr = CInt("&H" & IFKor )
    End If
    strResult = strResult & Chr(strchr)
    lngPos = lngPos + AddNum
   End If
   Else
    strResult = strResult & strTemp
  End If
 Next

 URLDecode = strResult
End Function

'Knowledge > WebProgramming' 카테고리의 다른 글

CDO "SendUsing"구성값이 잘못되었습니다 에러 (0x80040220)  (0) 2007.05.02
ASP에서 XML생성하기  (0) 2007.04.04
AJAX 간단 클래스  (0) 2007.04.02
JSP 파일업로드  (0) 2007.02.06
ASP에서 SMTP메일보내기  (0) 2007.02.05
And