문서의 이전 판입니다!
AJAX의 핵심은 XMLHttpRequest 오브젝트입니다.
모든 최신 브라우저는 XMLHttpRequest
객체를 지원합니다.
XMLHttpRequest
객체는 이면에서 웹 서버와 데이터를 교환하는 데 사용할 수 있습니다.
이는 전체 페이지를 리로딩하지 않고도 웹 페이지의 일부를 업데이트 할 수 있음을 의미합니다.
모든 최신 브라우저 (Chrome, Firefox, IE7 +, Edge, Safari, Opera)에는 내장 XMLHttpRequest
오브젝트가 있습니다.
XMLHttpRequest
오브젝트 생성을 위한 구문 :
variable = new XMLHttpRequest();
var xhttp = new XMLHttpRequest();
보안상의 이유로, 최신 브라우저는 도메인 간 액세스를 허용하지 않습니다.
이는 브라우저가 로딩하려는 웹 페이지와 XML 파일이 모두 동일한 서버에 있어야 함을 의미합니다.
W3Schools의 모든 예제는 W3Schools 도메인에 있는 XML 파일을 사용합니다.
웹 페이지에 위의 예제를 사용하려면, 로딩하는 XML 파일이 서버에 있어야 합니다.
최신 브라우저는 XMLHttpRequest 오브젝트 대신 Fetch API를 사용할 수 있습니다.
Fetch API 인터페이스를 사용하면 웹 브라우저가 웹 서버에 HTTP 요청을 할 수 있습니다.
XMLHttpRequest 오브젝트를 사용하는 경우 Fetch는 더 간단한 방법으로 동일한 작업을 수행할 수 있습니다.
이전 버전의 Internet Explorer (5/6)는 XMLHttpRequest
오브젝트 대신 ActiveX 개체를 사용합니다.
variable = new ActiveXObject("Microsoft.XMLHTTP");
IE5 및 IE6을 처리하려면, 브라우저가 XMLHttpRequest
오브젝트를 지원하는지 확인하거나, ActiveX
개체를 만듭니다:
if (widnow.XMLHttpRequest) { // code for modern browsers xmlhttp = new XMLHttpRequest(); } else { // code for old IE browsers xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
Method | Description |
---|---|
new XMLHttpRequest() | 새로운 XMLHttpRequest 오브젝트를 생성합니다. |
abort() | 현재의 요청을 취소합니다. |
getAllResponseHeaders() | 헤더 정보를 반환합니다. |
getResponseHeader() | 특정 헤더 정보를 반환합니다. |
open(method, url, async, user, psw) | 요청을 지정합니다. |
method: 요청 유형 GET 또는 POST | |
url: 파일 위치 | |
async: true(비동기) 또는 false(동기) | |
user: 선택적 사용자 이름 | |
psw : 선택적 암호 | |
send() | 서버에 요청을 보냅니다. |
GET 요청에 사용 | |
send(string) | 서버에 요청을 보냅니다. |
POST 요청에 사용 | |
setRequestHeader() | 보낼 헤더에 라벨/값 쌍을 추가합니다. |