This page was translated from English by the community.Learn more and join the MDN Web Docs community.
XMLHttpRequest
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015년 7월.
* Some parts of this feature may have varying levels of support.
XMLHttpRequest (XHR) 객체는 서버와 상호작용할 때 사용합니다. XHR을 사용하면 페이지의 새로고침 없이도 URL에서 데이터를 가져올 수 있습니다. 이를 활용하면 사용자의 작업을 방해하지 않고 페이지의 일부를 업데이트할 수 있습니다.
XMLHttpRequest는AJAX 프로그래밍에 많이 사용됩니다.
이름에XML이 들어가긴 하지만,XMLHttpRequest은 XML 뿐만 아니라 모든 종류의 데이터를 가져올 수 있습니다.
이벤트 데이터나 메시지 데이터를 서버에서 가져와야 하는 통신의 경우,EventSource 인터페이스를 통한서버발 이벤트(Server-sent events)의 사용을 고려하세요. 완전한 양방향 통신의 경우에는WebSocket이 더 좋은 선택일 수 있습니다.
참고 : 이 기능은Web Worker에서 사용할 수 있습니다.
In this article
생성자
XMLHttpRequest()XMLHttpRequest를 초기화합니다. 다른 메서드가 호출되기 전에 호출되어야 합니다.
속성
XMLHttpRequestEventTarget과EventTarget의 속성을 상속합니다.
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()보다 뒤에 호출해야 합니다.
이벤트
abortXMLHttpRequest.abort()를 호출하는 등, 요청이 중단되면 발생합니다.onabort속성으로도 수신할 수 있습니다.error요청이 오류를 마주치면 발생합니다.
onerror속성으로도 수신할 수 있습니다.loadXMLHttpRequest트랜잭션이 성공적으로 끝나면 발생합니다.onload속성으로도 수신할 수 있습니다.loadend요청이 성공적(
load이벤트)으로 끝나거나, 실패(abort또는error이벤트)한 후 발생합니다.onloadend속성으로도 수신할 수 있습니다.loadstart응답 데이터 로딩을 시작했을 때 발생합니다.
onloadstart속성으로도 수신할 수 있습니다.progress요청이 데이터를 수신하는 동안 주기적으로 발생합니다.
onprogress속성으로도 수신할 수 있습니다.readystatechangereadyState속성이 바뀔 때마다 발생합니다.onreadystatechange속성으로도 수신할 수 있습니다.timeout응답에 소요된 시간이 사전에 지정한 값을 초과해서 요청이 취소될 때 발생합니다.
ontimeout속성으로도 수신할 수 있습니다.
명세
| Specification |
|---|
| XMLHttpRequest> # interface-xmlhttprequest> |
브라우저 호환성
같이 보기
XMLSerializer: DOM 트리를 XML로 직렬화XMLHttpRequest를 다루는 MDN 자습서:Feature-Policy 지시자
sync-xhr