使用js仿写jquery中$.ajax()方法

核心代码:

var Ajax = function(option){
	var _option = {
		xmlhttp : null,
		type: "GET",
		async: true,
		data: "",
		contentType: "application/x-www-form-urlencoded",
		dataType: "text", // json
		url: "",
		success: function(status, response){},
		complete: function(status, response){},
		error: function(e){console.error(e);},
		timeout: function(e){console.error(e);}
	}
	
	for( key in option){
		_option[key] = option[key];
	}
	
	var xmlhttp = (function(){
		if (window.XMLHttpRequest){// code for all new browsers
			return new XMLHttpRequest();
		}else if (window.ActiveXObject){// code for IE5 and IE6
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
	})();
	if(xmlhttp != null) {
		xmlhttp.open(_option.type, _option.url, _option.async);
		xmlhttp.responseType = _option.dataType;
		xmlhttp.setRequestHeader("content-type", _option.contentType);
		xmlhttp.ontimeout = function(e) {
			_option.timeout(e);
		};
		xmlhttp.onerror = function(e) {
			_option.error(e);
		};
		
		xmlhttp.onreadystatechange = function(){
			if (xmlhttp.readyState == 4){
				if (xmlhttp.status == 200) {
					_option.success(xmlhttp.status, xmlhttp.response);
				}
				_option.complete(xmlhttp.status, xmlhttp.response);
			}
		}
		
		xmlhttp.send(_option.data);
	} else {
		console.error("Your browser does not support XMLHTTP.");
	}
}

使用示例:

Ajax({
	type: "POST",
	async: true,
	data: '{"name":"测试人员","age":22}',
	contentType: "application/json;charset=utf-8",
	dataType: "json",
	url: "test",
	success:function(status, response){
		console.log(response.code);
		console.log(response.message);
	}
});




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值