封装ajax

readState的值的含义:
0初始化请求-1发送请求-2接收数据-3解析数据-4完成

function ajax(obj){
		obj.type = obj.type || 'get';
		obj.data = obj.data || null;
		obj.async = obj.async || true;
		let xhr = null;
		if(window.XMLHttpRequest){
			//非IE
			xhr = new XMLHttpRequest();
		} else {
			//IE
			xhr = new ActiveXObject('Microsoft.XMLHTTP');
		}
		if(obj.type === 'post'){
			xhr.open(obj.type,obj.url,obj.async);
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			const data = toData(obj.data);
			xhr.send(data);
		} else {
			xhr.open(obj.type,obj.url+'?'+toData(obj.data),obj.async);
			xhr.send();
		}
		
		xhr.onreadstatechange = function(){
			if(xhr.readState === 4 && xhr.status === 200){
				if(obj.success){
					obj.success(JSON.parse(xhr.responseText));
				}
			} else {
				if(obj.error){
					obj.error(xht.status);
				}
			}
		}
		
}

function toData(obj){
	if(obj === null){
		return obj;
	}
	const res = [];
	for(let i in obj){
		let str = i + '=' + obj[i];
		res.push(str);
	}
	return res.join('&');
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值