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 설명은 이렇다.
-
method : GET POST PUT DELETE 와 같은 요청 방식을 정의한다.
-
url : 요청 url 값을 정의한다.
-
async : boolean 값을 가지며 true는 비동기 false 는 동기화방식을 정의한다.
-
user : optional 값으로 user name 을 정의한다.
-
pwd : optional 값으로 password 를 정의한다.
-
send() : GET 요청으로 open() 메서드로 정의한 요청을 서버에 전달한다.
-
send(String) : POST 요청으로 정의한 요청을 서버에 전달한다.
-
setRequestHeader() : 요청의 헤더에 label : value 쌍으로 값을 추가한다.
XMLHttpRequest 객체가 가지고 있는 속성(Property)는 다음과 같다.
-
onreadystatechange : 서버로 보낸 요청에 대한 응답을 받았을때의 동작을 정의한다. 즉, 해당 메서드에 함수를 정의하면 요청에 대한 상태가 변화할때 특정함수가 호출된다.
-
readyState : XMLHttpRequest 객체의 상태값에 따라 작동한다.
-
0 (uninitialized) - (request가 초기화되지 않음)
-
1 (loading) - (서버와의 연결이 성사됨)
-
2 (loaded) - (서버가 request를 받음)
-
3 (interactive) - (request(요청)을 처리하는 중)
-
4 (complete) - (request에 대한 처리가 끝났으며 응답할 준비가 완료됨)
-
responseText : Response로 리턴된 데이터를 String 값으로 반환한다.
-
responseXML: Response로 리턴된 데이터를 XML 값으로 반환한다.
-
status : XMLHttpRequest 객체에 정의되어 있는 상태(Status) 값이며 상수로 정의 되어있다.
-
200 : OK
-
403: Forbbidden
-
404: Not Found
https://www.w3schools.com/tags/ref_httpmessages.asp
굉장히 많다..
-
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 |