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);
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-08-27 17:32:32
Processing time 0.0060 sec