본문 바로가기
프로그램/Javascript

다양한 브라우저에서 XHR 인스턴스 생성하기

by 로드러너 2014. 3. 12.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자바스크립트 XHR(XMLHttpRequest) 객체를 사용하여 비동기 요청을 만드는 방식이 표준이지만, Internet Explorer 6 에서는 ActiveX 컨트롤을 사용하기 때문에 다른 방식으로 객체를 생성해야 한다. 단, IE 7 은 표준 인터페이스를 대신하는 래퍼를 제공한다.

 

 

Example

     var xhr;

    if(window.XMLHttpRequest){     // XHR 이 정의되는지 검사한다.

        xhr = new XMLHttpRequest();

    }else if(window.ActiveXObject){     // ActiveX를 제공하는지 검사한다.

        xhr = new ActiveXObject(“Msxml2.XMLHTTP”);;

    }else {

        alert(“Ajax를 지원하지 않는 브라우저입니다.”);

    }

 

 

객체를 생성하면 모든 브라우저에서 제공하는 프로퍼티와 메소드는 동일한 방식으로 사용할 수 있다.

 

[메소드]

abort() : 현재 실행하는 요청을 취소한다.

getAllResponseHeaders() : 응답 헤더의 모든 이름과 값을 포함하는 문자열을 반환한다.

getResponseHeader(name) : 응답 헤더에서 name에 해당하는 값을 반환한다.

open(method, url, async, username, password) : 요청 메소드와 호출할 URL을 설정한다. 선택적으로 요청은 동기 방식으로 선언할 수 있으며, 컨테이너 기반 인증이 필요하다면 사용자명과 암호를 제공한다.

send(content) : 요청을 선택사항인 본문 콘텐츠와 함께 전송한다.

setRequestHeader(name, value) : name에 해당하는 요청 헤더에 value를 설정한다.

 

 

[속성]

onreadystatechange : 요청 상태가 변경될 때 사용하는 이벤트 핸들러를 할당한다.

readyState : 요청의 상태를 나타내는 정수 값은 다음과 같다.

                          0 – 초기화되지 않은 상태

                          1 – 로드되지 않은 상태. sned() 메소드가 호출되지 않은 상태다.

                          2 – 로드된 상태. 헤더와 상태는 받았지만, 응답은 받지 못한 상태다.

                          3 – 상호작용 상태. 데이터의 일부만 받은 상태다.

                          4 – 완료상태. 모든 데이터를 받아서 완료된 상태다.

responseText : 응답에 반환된 본문 컨텐츠

responseXML : 본문 컨텐츠가 XML이라면 본문 컨텐츠에서 XML DOM을 생성한다.

status : 서버에서 반환한 응답 상태 코드. 성공은 200, 찾을 수 없음은 404.

statusText : 응답으로 반환된 상태 메시지