Ajax

Ajax의 핵심객체 XMLHttpRequestObject

Jungsoomin :) 2020. 7. 29. 13:46

Ajax의 핵심객체'XMLHttpRequestObject' 이다.

 

현대의 브라우저들은 전부 다 XMLHttpRequest 객체를 지원하고 있으며, XMLHttpRequest객체Client가 보는 화면 뒤에서 WebServer와 데이터를 주고 받기 위해 사용된다. 이 뜻은 서론에 기술 했듯, WebPage 전체를 reload할 필요없이 부분 만을 update 하는게 가능하다는 것을 뜻한다.

 

 


현대의 모든 브라우저들(사파리,크롬,인터넷익스플로러,엣지, 사파리 오페라) XMLHttpRequest객체로 구성되었다.

 

XMLHttpRequest 객체를 생성하는 문법.

variable = new XMLHttpRequest();

 

즉, 자바스크립트로 생성하게 되는 XMLHttpRequest 객체 생성은 이러하다.

var xhttp = new XMLHttpRequest();

보안 상의 이유로 현대 브라우저들은 Across domain 접속을 허용하지 않는다.

  이 뜻은 즉, Webpage와 XML파일이 로드되기위해서는 반드시 같은 서버에 위치해야한다는 것을 뜻한다고 한다.

 


인터넷 익스플로러의 옛버전인 IE5와 IE6 ActiveX 객체를 사용하는데 이는 XMLHttpRequest 객체로 구성되어 있다.

 IE5 나 IE6 를 다룰때에는 해당 브라우저가 XMLHttpRequest 객체를 허용하는지 아니면 ActiveX 객체를 만들어야하는지 체크해 봐야한다.

 

 ActiveX 객체를 생성하는 문법

variable = new ActiveXObject("Microsoft.XMLHTTP");

  XMLHttpRequest 객체를 지원하는지 여부는 window.XMLHttpRequest로 판단하여 조건에 알맞게 XMLHttpRequest객체나 ActiveX 객체를 생성해주면 되겠다.

var xmlhttp = null;

if (window.XMLHttpRequest) {
	// code for modern browers
    xmlhttp = new XMLHttpRequest();
} else {
    // code for old IE browers
	xmlhttp = new ActiveXObejct('Microsoft.XMLHTTP');
}

XMLHttpRequest 객체가 가지고 있는 메서드는 다음과 같다.

  • new XMLHttpRequest()

  • abort() : 현재 request를 취소한다.

  • getAllResponseHeaders() : 헤더의 모든 정보를 리턴한다.

  • getResponseHeader() : 지정된 해더 정보를 리턴한다.

  • open(method, url, async, user, pwd) : 보낼 요청을 특정한다.  send()메서드로 요청을 보내게된다.

open(method, url , async, user ,pwd) 의 Parameter 설명은 이렇다.

  1. method : GET POST PUT DELETE 와 같은 요청 방식을 정의한다.

  2. url : 요청 url 값을 정의한다.

  3. async : boolean 값을 가지며 true는 비동기 false 는 동기화방식을 정의한다.

  4. user : optional 값으로 user name 을 정의한다.

  5. pwd : optional 값으로 password 를 정의한다.

  • send() : GET 요청으로 open() 메서드로 정의한 요청을 서버에 전달한다.

  • send(String) : POST 요청으로 정의한 요청을 서버에 전달한다.

  • setRequestHeader() : 요청의 헤더에 label : value 쌍으로 값을 추가한다.


XMLHttpRequest 객체가 가지고 있는 속성(Property)는 다음과 같다.

  • onreadystatechange :  서버로 보낸 요청에 대한 응답을 받았을때의 동작을 정의한다. 즉, 해당 메서드에 함수를 정의하면 요청에 대한 상태가 변화할때 특정함수가 호출된다.

  • readyState : XMLHttpRequest 객체의 상태값에 따라 작동한다.

  1. 0 (uninitialized) - (request가 초기화되지 않음)

  2. 1 (loading) - (서버와의 연결이 성사됨)

  3. 2 (loaded) - (서버가 request를 받음)

  4. 3 (interactive) - (request(요청)을 처리하는 중)

  5. 4 (complete) - (request에 대한 처리가 끝났으며 응답할 준비가 완료됨)

  • responseText : Response로 리턴된 데이터를 String 값으로 반환한다.

  • responseXML: Response로 리턴된 데이터를 XML 값으로 반환한다.

  • status : XMLHttpRequest 객체에 정의되어 있는 상태(Status) 값이며 상수로 정의 되어있다.

  1. 200 : OK

  2. 403: Forbbidden

  3. 404: Not Found

https://www.w3schools.com/tags/ref_httpmessages.asp

 

HTTP Messages

HTTP Status Messages HTML Error Messages When a browser requests a service from a web server, an error might occur, and the server might return an error code like "404 Not Found". It is common to name these errors HTML error messages. But these messages ar

www.w3schools.com

굉장히 많다..

  • statusTest : XMLHttpRequest 객체의 상태(Status) 값을 text 값으로 리턴한다.

'Ajax' 카테고리의 다른 글

AJAX 에서의 비동기적 페이지 호출  (0) 2020.08.05
Loading 바 구현  (0) 2020.08.05
Ajax 로 폼데이터 보내기  (0) 2020.08.05
Ajax 를 이용하는 Jquery 기본 메서드.  (0) 2020.08.05
Ajax 서론.  (0) 2020.07.29