javascript ajax(三)

function createXHR(){  
      
    if(typeof XMLHttpRequest != "undefined"){  
        return new XMLHttpRequest();  
    }else if(typeof ActiveXObject != "undefined"){  
        var version = [  
            "MSXML2.XMLHttp.6.0",  
            "MSXML2.XMLHttp.3.0",  
            "MSXML2.XMLHttp"  
        ];  
          
          
        for(var i = 0;i < version.length;i++){  
            try{  
                return new ActiveXObject(version[i]);  
            }catch(e){  
                  
                  
            }  
              
        }  
    }  
    else{  
        throw new Error("您的系统或浏览器不支持XHR对象");  
    }  
}  

//名值对转换为字符串
function params(data){
	var arr = [];
	for(var i in data){
		
		arr.push(encodeURIComponent(i) + "=" + encodeURIComponent(data[i]));
	}
	return arr.join("&");
}

//封装ajax
function ajax(obj){
	var xhr = createXHR(obj.url);
	obj.url = obj.url + "?rand=" + Math.random();
	
	obj.data = params(obj.data);
	if(obj.method === "get"){
		obj.url += obj.url.indexOf("?") == -1?"?" + obj.data:"&" + obj.data;
		obj.url + "&" +obj.data;
	}
	
	if(obj.async === true){
			xhr.onreadystatechange = function(){
			if(xhr.readyState == 4){
				callback();
			}
		};
	}
	
	
	
	
	xhr.open(obj.method,obj.url,obj.async);
	if(obj.method === "post"){
		
		xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		xhr.send(obj.data);
	}else{
		xhr.send(null);
	}
	
	if(obj.async === false){
		callback();
	}
	
	function callback(){
		if(xhr.status == 200){
		obj.success(xhr.responseText);   //回调传参
		}else{
			alert("获取数据错误!错误代号:"+ xhr.status +",错误信息:" + xhr.statusText);
		}
	}
}

//调用ajax
addEvent(document,"click",function(){
	
	
	ajax({
			method:"post",
			url:"demo.jsp",
			data:{
				"name":"L&ee",
				"age":100
			},
			success:function(Text){
				alert(Text);
			},
			async:true
	});
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值