$ = {
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);}

}