//定义XMLHttpRequest对象实例
function test(){
	alert( 'aa' );
}

var http_request = false;

//定义可复用的http请求发送函数
function send_request(method,url,content,responseType,callback) {
	/* method:		提交方式(POST或GET)
	** url	:		提交地址
	** content:		参数表
	** responseType:	返回类型
	** callback:		回调函数名  */

	http_request = false;
	//开始初始化XMLHttpRequest对象
	if(window.XMLHttpRequest) { //Mozilla 浏览器
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {//设置MiME类别
			
			/* 有些Mozilla浏览器处理服务器未包含XML mime-type头部信息的内容会出错
			** 因此要确保返回的内容包含text/xml信息: */
			http_request.overrideMimeType("text/xml");
		}
	}
	else if (window.ActiveXObject) { // IE浏览器
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) { // 异常，创建对象实例失败
		window.alert("不能创建XMLHttpRequest对象实例.");
		return false;
	}

	//指定响应处理函数,将函数名赋值给XMLHttpRequest对象onreadystatechange属性就可以了,
	//函数名不加括号,不带参数
	if(responseType.toLowerCase()=="text") {
		//http_request.onreadystatechange = processTextResponse;
		http_request.onreadystatechange = callback;
	}
	else if(responseType.toLowerCase()=="xml") {
		//http_request.onreadystatechange = processXMLResponse;
		http_request.onreadystatechange = callback;
	}
	else {
		window.alert("响应类别参数错误。");
		return false;
	}

	/* 确定发送请求的方式和URL以及是否异步执行（第三个参数）下段代码
	** true:异步方式，服务器接收并响应http请求期间继续执行，当服务器返回数据时，执行回调函数执行
	** false:下面的代码不会继续执行，直到服务器返回数据  */
	if(method.toLowerCase()=="get") {
		http_request.open(method, url, true);
	}
	else if(method.toLowerCase()=="post") {
		http_request.open(method, url, true);
		http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	}
	else {
		window.alert("http请求类别参数错误。");
		return false;
	}
	http_request.send(content);
}

// 处理返回文本格式信息的函数
function processTextResponse() {
	/*
		先判断请求目前的状态,readyState值为4的时候,代表http请求发送成功并且服务器已经传回所有的信息
		可以开始处理信息并更新页面内容了
	*/
	if (http_request.readyState == 4) { // 判断对象状态
		/*
			判断返回的http请求的状态码,确定返回页面没有错误
			status值为200代表页面正常执行
		*/
		if (http_request.status == 200) { // 信息已经成功返回，开始处理信息
			//alert(http_request.responseText);
			alert("Text文档响应。");
		} else { //页面不正常
			alert("您所请求的页面有异常。");
		}
	}
}

//处理返回的XML格式文档的函数
function processXMLResponse() {
	if (http_request.readyState == 4) { // 判断对象状态
		if (http_request.status == 200) { // 信息已经成功返回，开始处理信息
			//alert(http_request.responseXML);
			alert("XML文档响应。");
		} else { //页面不正常
			alert("您所请求的页面有异常。");
		}
	}
}
