🎁 w3schools, Mozilla를 보며 혼자 공부하는 AJAX.
💻HTML Page
<!DOCTYPE html>
<html>
<body>
<div id="demo">
<h2>Let AJAX change this text</h2>
<button type="button" onclick="loadDoc()">Change Content</button>
</div>
</body>
</html>
<div>
는 server에서 오는 정보를 보여준다.<button>
은 function을 부르는 역할(클릭이벤트로).function loadDoc() {
var xhttp = new XMLHTTPRequest();
xttp.onreadystatechange=function(){
if(this.readyState==4 && this.status ==200){
document.getElementById("demo").innerHTML = this.responseText;
}
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
}
👀 XMLHttpRequest(XHR) 객체는 서버와 상호작용하기 위해 사용. 전체 페이지의 새로고침 없이도 URL로부터 데이터를 받아올 수 있다. 웹 페이지가 사용자가 하고 있는 것을 방해하지 않으면서 페이지의 일부를 업데이트 할 수 있도록 해줌.(주로 AJAX에서 사용)
🎁 생성자 : XMLHttpRequest를 초기화. 다른 모든 메소드 호출 이전에 호출되어야 함.
🎁 속성
XMLHttpRequest.onreadystatechange
readyState
어트리뷰트가 변경될때마다 호출되는 EventHandler.XMLHttpRequest.readyState
(Read only)unsigned short
로 반환.XMLHttpRequest.response
XMLHttprequest.responseType
의 값에 따라 ArrayBuffer
, Blob
, Document
, Javascript객체
, 또는 DOMString
을 반환.XMLHttpRequest.responseText
DOMString
을 반환.🎁 메소드
XMLHttpRequest.abort()
XMLHttpRequest.getAllResponseHeaders()
null
XMLHttpRequest.getResponseHeader()
null
XMLHttpRequest.open(method, url[,async[,user[,password]]])
"GET"
, "POST"
, "PUT"
, "DELETE"
등이 존재.DOMString
XMLHttpRequest.send()
🎁 Server에 request 보내기.
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
open(method, url, async)
send() : GET을 사용해서 server에 request를 보냄.
send(string) : POST를 사용해서 server에 request를 보냄.
🎁 GET or POST
GET
이 POST
보다 빠르고 간단.🎁 GET Requests
xhttp.open("GET", "demo_get.asp", true);
xhttp.send();
xhttp.open("GET", "demo_get2.asp?fname=Henry&lname=Ford", true);
xhttp.send();
🎁 POST Requests
xhttp.open("POST", "demo_post.asp", true);
xhttp.send();
xhttp.open("POST", "ajax_test.asp", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("fname=Henry&lname=Ford");