XMLHttpRequest

XMLHttpRequest (XHR) 객체는 서버와 상호작용할 때 사용합니다. XHR을 사용하면 페이지의 새로고침 없이도 URL에서 데이터를 가져올 수 있습니다. 이를 활용하면 사용자의 작업을 방해하지 않고 페이지의 일부를 업데이트할 수 있습니다.

XMLHttpRequestAJAX 프로그래밍에 많이 사용됩니다.

EventTarget XMLHttpRequestEventTarget (en-US) XMLHttpRequest

이름에 XML이 들어가긴 하지만, XMLHttpRequest은 XML 뿐만 아니라 모든 종류의 데이터를 가져올 수 있습니다.

이벤트 데이터나 메시지 데이터를 서버에서 가져와야 하는 통신의 경우, EventSource 인터페이스를 통한 서버발 이벤트(Server-sent events)의 사용을 고려하세요. 완전한 양방향 통신의 경우에는 WebSocket이 더 좋은 선택일 수 있습니다.

주의: This feature is available in Web Workers, except for Service Workers

생성자

XMLHttpRequest() (en-US)

XMLHttpRequst를 초기화합니다. 다른 메서드가 호출되기 전에 호출되어야 합니다.

속성

XMLHttpRequestEventTarget (en-US)EventTarget의 속성을 상속합니다.

XMLHttpRequest.readyState (en-US) Read only

요청의 상태를 나타내는 숫자를 반환합니다.

XMLHttpRequest.response (en-US) Read only

XMLHttpRequest.responseType (en-US)의 값에 따라, 응답 개체 본문을 포함하는 ArrayBuffer, Blob, Document, JavaScript 객체, 또는 DOMString을 반환합니다.

XMLHttpRequest.responseText (en-US) Read only

요청에 대한 응답을 텍스트로 나타내는 string을 반환합니다. 요청이 실패했거나, 아직 전송하지않은 경우에는 null을 반환합니다.

XMLHttpRequest.responseType (en-US)

응답의 유형을 지정합니다.

XMLHttpRequest.responseURL (en-US) Read only

응답의 URL을 직렬화한 값을 반환합니다. URL이 null이면 빈 문자열을 반환합니다.

XMLHttpRequest.responseXML (en-US) Read only

요청에 대한 응답을 포함한 Document를 반환합니다. 요청이 실패했거나, 아직 전송하지 않았거나, 응답을 XML/HTML로 파싱할 수 없는 경우 null을 반환합니다. Web Worker에서 사용할 수 없습니다.

XMLHttpRequest.status (en-US) Read only

응답의 HTTP 상태 코드를 반환합니다.

XMLHttpRequest.statusText (en-US) Read only

HTTP 서버가 반환한 응답 문자열을 담은 string을 반환합니다. XMLHttpRequest.status (en-US)와 달리, statusText는 "OK"와 같은 응답 상태 메시지의 전문을 반환합니다

참고: HTTP/1.1의 상태 텍스트와 같이 프로토콜 버전과 응답의 이유를 알릴 방법이 HTTP/2 명세에는 없습니다. (RFC 7540, section 8.1.2.4: Response Pseudo-Header Fields)

XMLHttpRequest.timeout

요청을 자동으로 종료하기 전에 대기할 시간을 나타내는 밀리초 단위 값입니다.

XMLHttpRequest.upload Read only

업로드 과정을 나타내는 XMLHttpRequestUpload입니다.

XMLHttpRequest.withCredentials (en-US)

쿠키 또는 권한 부여 헤더와 같은 자격 증명을 사용하여 사이트 간 Access-Control 요청을 만들어야 하는 경우 true를 반환합니다. 그렇지 않으면 false를 반환합니다.

비표준 속성들

메서드

XMLHttpRequest.abort() (en-US)

이미 요청을 전송한 경우, 그 요청을 중단합니다.

XMLHttpRequest.getAllResponseHeaders() (en-US)

모든 응답 헤더를 CRLF (en-US)로 구분해서 하나의 문자열로 반환합니다. 응답을 받지 못한 경우 null을 반환합니다.

XMLHttpRequest.getResponseHeader() (en-US)

지정한 헤더의 텍스트를 담은 문자열을 반환합니다. 응답을 받지 못했거나, 지정한 헤더가 응답에 존재하지 않으면 null을 반환합니다.

XMLHttpRequest.open() (en-US)

요청을 초기화합니다.

XMLHttpRequest.overrideMimeType() (en-US)

서버가 반환한 MIME 유형을 재정의합니다.

XMLHttpRequest.send() (en-US)

요청을 전송합니다. 비동기 요청(기본 동작)인 경우, send()는 요청을 전송하는 즉시 반환합니다.

XMLHttpRequest.setRequestHeader()

HTTP 요청 헤더의 값을 설정합니다. 반드시 send() (en-US)보다 먼저, 그러나 open() (en-US)보다 뒤에 호출해야 합니다.

이벤트

abort (en-US)

XMLHttpRequest.abort() (en-US)를 호출하는 등, 요청이 중단되면 발생합니다. onabort 속성으로도 수신할 수 있습니다.

error (en-US)

요청이 오류를 마주치면 발생합니다. onerror 속성으로도 수신할 수 있습니다.

load (en-US)

XMLHttpRequest 트랜잭션이 성공적으로 끝나면 발생합니다. onload 속성으로도 수신할 수 있습니다.

loadend (en-US)

요청이 성공적(load (en-US) 이벤트)으로 끝나거나, 실패(abort (en-US) 또는 error (en-US) 이벤트)한 후 발생합니다. onloadend 속성으로도 수신할 수 있습니다.

loadstart (en-US)

응답 데이터 로딩을 시작했을 때 발생합니다. onloadstart 속성으로도 수신할 수 있습니다.

progress (en-US)

요청이 데이터를 수신하는 동안 주기적으로 발생합니다. onprogress 속성으로도 수신할 수 있습니다.

readystatechange (en-US)

readyState (en-US) 속성이 바뀔 때마다 발생합니다. onreadystatechange 속성으로도 수신할 수 있습니다.

timeout

응답에 소요된 시간이 사전에 지정한 값을 초과해서 요청이 취소될 때 발생합니다. ontimeout 속성으로도 수신할 수 있습니다.

명세

Specification
XMLHttpRequest Standard
# interface-xmlhttprequest

브라우저 호환성

BCD tables only load in the browser

같이 보기