======AJAX - The XMLHttpRequest Object====== * description : AJAX - The XMLHttpRequest Object * author : 오션 * email : shlim@repia.com * lastupdate : 2021-04-02 \\ AJAX의 핵심은 %%XMLHttpRequest%% 오브젝트입니다.\\ =====The XMLHttpRequest Object===== 모든 최신 브라우저는 ''%%XMLHttpRequest%%'' 객체를 지원합니다.\\ \\ ''%%XMLHttpRequest%%'' 객체는 이면에서 웹 서버와 데이터를 교환하는 데 사용할 수 있습니다.\\ 이는 전체 페이지를 리로딩하지 않고도 웹 페이지의 일부를 업데이트 할 수 있음을 의미합니다.\\ \\ =====Create an XMLHttpRequest Object===== 모든 최신 브라우저 (Chrome, Firefox, IE7 +, Edge, Safari, Opera)에는 내장 ''%%XMLHttpRequest%%'' 오브젝트가 있습니다.\\ \\ ''%%XMLHttpRequest%%'' 오브젝트 생성을 위한 구문 : variable = new XMLHttpRequest(); ====예제==== var xhttp = new XMLHttpRequest(); \\ =====Access Across Domains===== 보안상의 이유로, 최신 브라우저는 도메인 간 액세스를 허용하지 않습니다.\\ \\ 이는 브라우저가 로딩하려는 웹 페이지와 XML 파일이 모두 동일한 서버에 있어야 함을 의미합니다.\\ \\ W3Schools의 모든 예제는 W3Schools 도메인에 있는 XML 파일을 사용합니다.\\ \\ 웹 페이지에 위의 예제를 사용하려면, 로딩하는 XML 파일이 서버에 있어야 합니다.\\ \\ =====Modern Browsers (Fetch API)===== 최신 브라우저는 %%XMLHttpRequest%% 오브젝트 대신 Fetch API를 사용할 수 있습니다.\\ \\ Fetch API 인터페이스를 사용하면 웹 브라우저가 웹 서버에 HTTP 요청을 할 수 있습니다.\\ \\ %%XMLHttpRequest%% 오브젝트를 사용하는 경우 Fetch는 더 간단한 방법으로 동일한 작업을 수행할 수 있습니다.\\ \\ =====Old Browsers (IE5 and IE6)===== 이전 버전의 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"); } \\ =====XMLHttpRequest Object Methods===== ^ 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() | 보낼 헤더에 라벨/값 쌍을 추가합니다. | \\ =====XMLHttpRequest Object Properties===== ^ Property ^ Description ^ | onreadystatechange | readyState 속성이 변경될 때 호출되는 함수를 정의합니다. | | readyState | XMLRequest의 상태를 보유합니다. | | ::: | 0: 요청의 초기화되지 않았습니다. | | ::: | 1: 서버 연결 설정 | | ::: | 2: 요청 수신 | | ::: | 3. 요청 처리 | | ::: | 4. 요청 완료 및 Response 준비 | | responseText | Response 데이터를 문자열로 반환합니다. | | responseXML | Respnose 데이터를 XML 데이터로 반환합니다. | | status | 요청의 상태 번호(status-number)를 반환합니다. | | ::: | 200: "OK" | | ::: | 403: "금지됨(Forbidden)" | | ::: | 404: "찾을 수 없음(Not Found)" | | ::: | 전체 목록을 보려면 [[https://www.w3schools.com/tags/ref_httpmessages.asp|HTTP Messages Reference]]로 이동하세요 | | statusText | 상태 텍스트(status-text)를 반환합니다.(예: "OK" 또는 "Not Found") | {{tag>오션, Javascript AJAX - The XMLHttpRequest Object}}