-์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ ๋น๋๊ธฐ์์ผ๋ก XML์ ์ด์ฉํ์ฌ ์๋ฒ์ ํต์ ํ๋ ๋ฐฉ์.
-์ต๊ทผ์๋ XML ๋ณด๋ค JSON์ ๋ ๋ง์ด ์ฌ์ฉํ๋ค.
-๋น๋๊ธฐ์์ด๋ ์ฌ๋ฌ๊ฐ์ง ์ผ์ด ๋์์ ์ผ๋ก ๋ฐ์ํ๋ค๋ ๋ป์ผ๋ก, ์๋ฒ์ ํต์ ํ๋ ๋์ ๋ค๋ฅธ ์์
์ ํ ์ ์๋ค๋ ์๋ฏธ
EX>์น์ฌ์ดํธ์์ ํค๋ฅผ ํด๋ฆญ ํ ๋๋ง๋ค ๊ฐ์ด ๋ณ๊ฒฝํ๋ค,์ง๋๊ฐ์๋ฐ์ ๋๋๊ทธํ๊ณ ๋ผ๋ฉด ๋ณ๊ฒฝ๋ ๊ฐ๋ค.
//httpRequest.js
function getXMLHttpRequest() {
if (window.ActiveXObject) {//๊ตฌํ๋ธ๋ผ์ฐ์ ์ผ๋ ๊ฐ์ฒด์์ฑ๋ฐฉ๋ฒ.
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch(e1) { return null; }
}
} else if (window.XMLHttpRequest) {
return new XMLHttpRequest(); //ํ์ค๊ฐ์ฒด
} else {
return null;
}
}
var httpRequest = null; //XHR๊ฐ์ฒด
function sendRequest(url, params, callback, method) {
/*send๋ก ์์ฒด์ ์ผ๋ก ํจ์ํ์์ผ์ ajax๊ฐ๋ฅํ๊ฒ ๋ง๋ฌ.
์ฝ๋ฐฑ์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์ ๋ด์ผํด์ ํ์,
๋ฉ์๋๋ฐฉ์์ด๋ ๋ฐ์ํฐ ๊ฐ ์ ๋ฌํ ๋ */
httpRequest = getXMLHttpRequest(); //xhr๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ค
var httpMethod = method ? method : 'GET';
if (httpMethod != 'GET' && httpMethod != 'POST') {
//get์ ํ๋ผ๋ฏธํฐ post๋ ๋ฐ๋์ ๋ฃ๊ตฌ๊ฐ.
httpMethod = 'GET'; //get์ ์ฌ์ฉํ๊ฒ๋ค.
}
var httpParams = (params == null || params == '') ? null : params;
var httpUrl = url;
if (httpMethod == 'GET' && httpParams != null) {
httpUrl = httpUrl + "?" + httpParams;
}
httpRequest.open(httpMethod, httpUrl, true);
//true๋ฅผ ์
๋ ฅํด์ผ ๋น๋๊ธฐ์์ด๋ผ๊ณ ์
ํ
httpRequest.setRequestHeader(
'Content-Type', 'application/x-www-form-urlencoded');
//๊ธฐ๋ณธ ํค๋๊ฐ์. ,๋ค์ ๋ด์ฉ์ ์๋ ๋ค๋ฅธ๊ฑฐ ๋ฃ์ด์ผํด
httpRequest.onreadystatechange = callback;
//์ฝ๋ฐฑํจ์ ๋ฑ๋ก.์ฝ๋ฐฑํจ์์ ๋ญ๋ฅผ ๋ฃ๋๋์ ๋ค๋ผ ๋ฌ๋ผ์ง.
httpRequest.send(httpMethod == 'POST' ? httpParams : null);
}
//member_json.jsp
<%@ page language="java" contentType="text/plain; charset=EUC-KR"
pageEncoding="EUC-KR"%>
{
"code": "success",
"data": {
"member": {
"name": "๋ฐ์ฐฌํธ",
"id": "jQuery",
"sno": "1111-2222"
}
}
}
//road_json.html
<script type="text/javascript" src ="httpRequest.js"></script>
<script type="text/javascript">
window.onload = function(){
sendRequest("member_json.jsp","",viewInfo,"GET");
//๋ฐ์ดํฐ๊ฐ์์ด ์์ฒญํ๋ฉด get๋ฐฉ์
}
function viewInfo(){
if(httpRequest.readyState == 4){
if(httpRequest.status == 200){
var result = eval("("+httpRequest.responseText+")");
//๋ฌธ์์ด => ๊ฐ์ฒด(๋ณํ) eval =>๋ฌธ์์ด์ ๊ฐ์ฒด๋ก ๋ณํํ ๋ ์ฌ์ฉ!
if(result.code == 'success'){
var m = result.data.member;
var html ='<span>์ด๋ฆ:' + m.name+",ID:" +m.id+'</span>';
var list = document.getElementById("list");
list.innerHTML = html;
}
}
}
}
</script>
</head>
<body>
<div id ="list"></div>
</body>
</html>
Ajax๋ ์ ์ด์ฟผ๋ฆฌ ๋ฐฐ์ฐ๊ธฐ์ ์ ์ดํด๋ฅผ ๋๊ธฐ์ํด ํ์ํ ํ๋ฆ์ ๋ํด์ ๋ฐฐ์๋ณด์๋ค.