ajax的封装-创新互联
$ = {
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);
}
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文题目:ajax的封装-创新互联
分享链接:http://lswzjz.com/article/dscege.html