XMLHttpRequest 객체를 사용하는 ajax 공통 함수
//XMLHttpRequest 객체를 저정할 전역 변수 var httpRequest = null; //브라우저에 따라 XMLHttpRequest 객체를 생성 function getXMLHttpRequest() { if (window.ActiveXObject) { //IE 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(); } return null; } //XMLHttpRequest를 사용해서 웹 서버에 요청 function sendRequest(url, params, callback, method) { httpRequest = getXMLHttpRequest(); //전송 방식이 생략된 경우 기본으로 GET 방식으로 설정한다. var httpMethod = method ? method : 'GET'; // 전송 방법이 GET/POST 이외는 무조건 GET 방식으로 설정한다. if (httpMethod != 'GET' && httpMethod != 'POST') { httpMethod = 'GET'; } //요청 인자의 기본값을 설정한다. var httpParams = ""; if (params != null && params != '') { for (var key in params) { if (httpParams == "") { httpParams = key+'='+encodeURIComponent(params[key]); } else { httpParams += '&'+key+'='+encodeURIComponent(params[key]); } } } var httpUrl = url; //전송 방법이 GET 방법이면서 요청 인자가 존재할 경우 if (httpMethod == 'GET' && httpParams != "") httpUrl = httpUrl + "?" + httpParams; //전송 방법과 URL을 설정한다.(요청방식, URL, 비동기여부) httpRequest.open(httpMethod, httpUrl, true); //전송 방법이 POST면 전송할 켄텐츠의 타입을 지정한다. if (httpMethod == 'POST') httpRequest.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded'); //readyState 속성이 변경될 때마다 호출될 콜백 함수를 지정한다. httpRequest.onreadystatechange = callback; //전송방법이 POST인 경우 param 전달 httpRequest.send(httpMethod == 'POST' ? httpParams : null); }