XMLHTTP

윈도우판 IE에 XMLHTTP 오브젝트 생성 클래스

서식 : oj = new ActiveXObject("Microsoft.XMLHTTP")

          oj = new ActiveXObject("MSXML2.XMLHTTP")

반환 : ActiveXObject

데이터형 : Object

 

XMLHttpRequest

윈도우판 IE외에서 XMLHTTP 오브젝트 생성 클래스

서식 : oj = new XMLHttpRequest()

반환 : XMLHttpRequest

데이터형 : object

 

responseXML

요청에 대한 응답을 XML로 반환하는 프로퍼티

서식 : xmlobj = oj.responseXML

r/w : readonly

데이터형 : object

값 : XML문서

 

responseText

요청에 대한 응답을 텍스트로 돌려주는 프로퍼티

서식 : value = oj.responseText

r/w : readonly

데이터형 :string

값 : 문자열(HTTP응답의 엔티티 바디)

 

status

3자릿수의 숫자로 HTTP 상태 코드를 나타내는 프로퍼티

서식 : value = oj.status

r/w:readonly

데이터형: long

값 : 3자리 숫자

주요HTTP상태 코드

---------------------------------------

200 : OK | 요청성공

401   : Unauthorized | 권한 없음

403  : Forbidden   | 접근 거부

404  : Not Found   | 요청 리소스 없음

500  : Interal Server Error  | 서버 내부 오류

 

statusText

HTTP상태 텍스트를 나타내는 프로퍼티

서식 : value = oj.statusText

r/w:readonly

데이터형 : string

값 : 문자열

 

abort()

요청을 취소하는 메소드

서식 : oj.abort()

반환값 : 없음

* abort()취소 후에 send() 메소드를 호출하면 오류나므로 조심해서 쓰야함.

 

getAllResponseHeaders()

HTTP요청에 대한 모든 응답 헤더를 돌려주는 메소드

서식 : oj.getAllResponseHeaders()

반환값 : HTTP응답 헤더(아직 도착하지 않았다면 Null)

데이터형 : String

 

getResponseHeader()

인수로 지정한 응답헤더를 돌려주는 메소드

서식 : value = oj.getResponseHeader('Content-Type')

인수 : header : 검색하고 싶은 헤더 이름

반환값 : HTTP응답 헤더의 값(아직 도착하지 않았다면 null)

데이형 : string

* send() 메소드 호출이 성공한 다음 설정 한다.

 

open()

요청을 초기화해서 HTTP 메소드 및 URL 등을 설정하는 메소드

서식 : oj.open(method,url[,async[,user[,password]]])

인수 : method : HTTP 메소드 GET Or POST 등(윈도우판IE는 이 밖에 PUT, PROPFIND)

           url : 요청 대상 URL ("http://포함하는게 좋음..ㅋㅋ")

           async : (옵션) 비동기라면 true, 동기라면 false(생략시 true이며,콜백이벤트(onreadyStatechange)가 이용 가능)

           user : (옵션) 사용자 이름(인증 페이지에서는 이것을 생략하거나 "" 로 하면 인증 대화창이 표시)

           password : (옵션) 암호

 

send()

요청을 송신하는 메소드

서식 : oj.send(body)

인수 : body : POST의 문자열 또는 DOMDocument, InputStream

반환값 : 없음

 

setRequestHeader()

인수로 지정한 요청 헤더를 설정하는 메소드

서식: oj.setRequestHeader(header,값)

인수 : header :설정하고 싶은 헤더 이름

반환값 : 없음

예 : open() 한다음 User-Agent 이름을 설정한다.

oj.open('POST','http://www.naver.com',true)

oj.setRequestHeader("User-Agent","naniBrowser1.0");

 

readyState()

요청의 처리상태를 나타내는 프로퍼티

서식 : value = oj.readyState

r/w : readonly

데이터형 : long

값 : 4바이트의 정수 

readyState에 정의 되어 있는 값

-------------------------------------

0 : UNINITIALIZED : 오브젝트는 작성되어있으나, 아직 초기화되어있지 않다(open()호출전)

1 : LOADING : 오브젝트가 작성되었으나 아직 send 메소드 호출전

2: LOADED : send메소드가 불렸지만 status와 헤더가 아직 도착하지 않은 상태

3 : INTERACTIVE : 데이터 일부를 받았다. (이건 되도록 쓰지말도록 하자 대신 4를 써자)

4 : COMPLETED : 데이터 전부를 받았다. 완전한 데이터 이용 가능

 

onreadystatechange()

readyState 프로퍼티가 변화할때 발생하여 핸들러 함수를 실행하는 이벤트

서식 : oj.onreadystatechange = 핸들러 함수 이름

          function 핸들러 함수 이름() (oj) { /* 이벤트 발생시의 처리 */ }

           oj.onreadystatechange = function(oj){ /* 이벤트 발생시의 처리 */}

예: readyState값이 "4" 라면 responseText를 대화창에 표시한다.

 

onload()

응답 헤더의 로딩을 완료했을 대 발생하여 핸들러 함수를 실행하는 이벤트

서식 : oj.onload = 핸들러 함수 이름

          function 핸들러 함수 이름()(oj) { /* 이벤트 발생시의 처리 */ }

          oj.onload = function(oj) { /* 이벤트 발생시의 처리 */ }

          * IE 에서는 지원되지 않음.