$ = { ajax:function(options){ var xhr = null, // XXMLHttpRequest对象 url = options.url, // url 地址 method = options.method || 'GET', // 传输方式,默认GET async = typeof (options.async) === "undefined"?true:options.async, data = options.data || null, params = '', //传递的参数 callback = options.success, error = options.error; // 将data的对象字面量的形式转化为字符串形式 if(data){ for(var i in data){ params += i + '=' + data[i] + '&'; } params = params.replace(/&$/,''); }

		// 根据method 的值改变URL
		if(method === 'GET'){
			url += '?' + params; 
		}
	if(typeof XMLHttpRequest != "undefined"){
		xhr = new XMLHttpRequest();
	}else if(typeof ActiveXObject != "undefined"){
		var xhrArr = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 
		'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP.2.0',]
	var len = xhrArr.length;
	for(var i=0; i <=len; i++){
		try{
			xhr = new ActiveXObject(xhrArr[i])
			break
		}catch(e){
			//TODO handle the exception
		}			
	}		
	}else{
	throw new Error('No XHR object available.');
	}
	xhr.onreadystatechange = function(){
		if xhr.readyState === 4){
			if((xhr.status >=200 && xhr.status <300) || xhr.status===304){
				callback && callback(JSON.parse(xhr.responseText))
			}else{
				error && error();
			}
		}
	}
	// 创建发送请求
	xhr.open(method,url,async)
	xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr.send(params);
}

}