日期:2014-05-16  浏览次数:20645 次

AJAX 简单封装

本人简单封装的ajax调用方法,包含同步和异步

/**
 * @param url 待请求的服务端地址
 * @param 第二个参数 method form method 默认'GET'
 * @param 第三个参数 func 异步请求时的响应函数引用(给定该参数就是异步请求,否则为同步)
 * @param 第四个以后的参数 args 响应函数参数
 * 描述:url必选参数,同步请求时,二参数可选,三四不选;异步请求时都是必选参数,二参数可以给定一个空字符串(若你的响应函数无参的话,则四及后面的参数都不选)
 * 同步请求时反回一个数组对象,该数组有两个元素,第一个是ajax返回的普通文本,第二个是ajax返回的DOM对象
 * @return
 */
function ajaxSend(url){
	var ajax = createAjax();
	var method = arguments[1]||'GET';
	method = method.toUpperCase();
	if(method != 'GET' && method != 'POST'){
		mehotd = 'GET';
	}
	var isAsyn= arguments[2]?true:false;
	ajax.open(method, url, isAsyn);
	if(isAsyn){
		var callBackMehod = arguments[2];
		var argCnt = arguments.length-3;
		var argsArr = new Array(argCnt);
		for(i=0;i<argCnt;i++){
			argsArr[i] = arguments[3+i];
		}
		argsArr.push(ajax);
		ajax.onreadystatechange = function(){
		  if(ajax.readyState == 4){
			if(ajax.status == 200){
				callBackMehod.apply(this, argsArr);
			}
		  }
		};
		ajax.send(null);
		return ajax;
	}
	else{
		ajax.send(null);
		var arr = new Array(ajax.responseText);
		if(isIE){
			arr.push(ajax.responseXML.documentElement);
		}else{
			var parser = new DOMParser();
			xml = parser.parseFromString(ajax.responseText, "text/xml");
			arr.push(xml);
		}
		return arr;
	}
}

?

?