XMLHttpRequest

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

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

EventTarget XMLHttpRequestEventTarget XMLHttpRequest

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

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

{{AvailableInWorkers("notservice")}}

생성자

XMLHttpRequest()

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

속성

XMLHttpRequestEventTargetEventTarget의 속성을 상속합니다.

XMLHttpRequest.readyState 읽기 전용

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

XMLHttpRequest.response 읽기 전용

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

XMLHttpRequest.responseText 읽기 전용

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

XMLHttpRequest.responseType

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

XMLHttpRequest.responseURL 읽기 전용

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

XMLHttpRequest.responseXML 읽기 전용

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

XMLHttpRequest.status 읽기 전용

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

XMLHttpRequest.statusText 읽기 전용

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

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

XMLHttpRequest.timeout

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

XMLHttpRequest.upload 읽기 전용

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

XMLHttpRequest.withCredentials

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

비표준 속성들

XMLHttpRequest.channel읽기 전용

요청을 수행할 때 객체에서 사용하는 채널입니다.

XMLHttpRequest.mozAnon읽기 전용

'boolean'입니다. true인 경우 쿠키 및 인증 헤더 없이 요청이 전송됩니다.

XMLHttpRequest.mozSystem읽기 전용

'boolean'입니다. true인 경우 same origin policy가 요청에 적용되지 않습니다.

XMLHttpRequest.mozBackgroundRequest

'boolean'입니다. 객체가 백그라운드에서 서비스 요청을 나타내는지 여부를 나타냅니다.

메서드

XMLHttpRequest.abort()

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

XMLHttpRequest.getAllResponseHeaders()

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

XMLHttpRequest.getResponseHeader()

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

XMLHttpRequest.open()

요청을 초기화합니다.

XMLHttpRequest.overrideMimeType()

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

XMLHttpRequest.send()

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

XMLHttpRequest.setRequestHeader()

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

이벤트

abort

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

error

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

load

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

loadend

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

loadstart

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

progress

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

readystatechange

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

timeout

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

명세

Specification
XMLHttpRequest Standard
# interface-xmlhttprequest

브라우저 호환성

BCD tables only load in the browser

같이 보기