ajax请求过程

ajax请求

<script type="text/javascript">
	function btnClick() {
		//创建核心对象
		xmlhttp = null;
		if (window.XMLHttpRequest) {// code for Firefox, Opera, IE7, etc.
			xmlhttp = new XMLHttpRequest();
		} else if (window.ActiveXObject) {// code for IE6, IE5
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		//编写回调函数
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				alert(xmlhttp.responseText)
			}
		}
		//open设置请求方式和请求路径
		xmlhttp.open("get", "www.baidu.com");//一个servlet,后面还可以写是否同步
		//send 发送
		xmlhttp.send();
	}
</script>

 

ajax封装

/*function ajax(type,url,fnSucess,fnFail,data){
	//对于非必须参数的处理
	//考虑参数过多的情况
	xhr.open(type,url,true)
}*/
//{type:"get",url:"demo.php",fnSuccess:foo,fnFail:bar,data:data}
//data{username:"aaaa",password:1111}=>"username=aaaa&password=1111"
function ajax(obj){
	
	var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	var str = "";
	if(obj.data){
		for(var attr in obj.data){
			str += attr+"="+obj.data[attr]+"&";
		}
		str = str.replace(/&$/,"");
	}
	
	//避免传递的实参有小写的情形
	if(obj.type.toUpperCase() == "GET"){
		if(obj.data){
			xhr.open("get",obj.url+"?"+str,true);
		}else{
			xhr.open("get",obj.url,true);
		}
		xhr.send();
	}
	if(obj.type.toUpperCase() == "POST"){
		xhr.open("post",obj.url,true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr.send(str);
	}
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4){
			if(xhr.status == 200){
				var data = xhr.responseText;
				obj.fnSuccess(data);
			}else{
				obj.fnFail();
			}
		}
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值