原生js语句封装jquery版ajax

function ajax() {
				var ajaxData = {
					type: arguments[0].type || "GET",
					url: arguments[0].url || "",
					async: arguments[0].async || true,
					data: arguments[0].data || null,
					dataType: arguments[0].dataType || "text",
					contentType: arguments[0].contentType || "application/x-www-form-urlencoded",
					beforeSend: arguments[0].beforeSend || function() {},
					success: arguments[0].success || function() {},
					error: arguments[0].error || function() {}
				}

				ajaxData.beforeSend();
				var xhr = createxmlHttpRequest();
				xhr.responseType = ajaxData.dataType;
				xhr.open(ajaxData.type, ajaxData.url, ajaxData.async);
				xhr.withCredentials = true;
				xhr.setRequestHeader('Content-Type', ajaxData.contentType);
				xhr.send(convertData(ajaxData.data));
				xhr.onreadystatechange = function() {
					if(xhr.readyState == 4) {
						if(xhr.status == 200) {
							ajaxData.success(xhr.response);
						} else {
							ajaxData.error();
						}
					}
				}

			}

			//创建http请求
			function createxmlHttpRequest() {
				if(window.ActiveXObject) {
					return new ActiveXObject("Microsoft.XMLHTTP");
					//XMLHttpRequest => 可扩展超文本传输请求
				} else if(window.XMLHttpRequest) {
					return new XMLHttpRequest();
				}
			}

			//数据转换
			function convertData(data) {
				if(typeof data == 'object') {
					var convertResult = '';
					for(var c in data) {
						convertResult += c + "=" + data[c] + "&";
					}
					//substring => 子字符串
					convertResult = convertResult.substring(0, convertResult.length - 1);
					return convertResult;
				} else {
					return data;
				}
			}

			ajax({
				type: 'POST',
				url: '',
				async: true,
				dataType: '',
				data: {},
				beforeSend: function() {
					//some js code 
				},
				success: function(result) {
					console.log(result);
				},
				error: function(error,xml) {
					console.log(error);
                                        console.log(xml.readyState);
				}
			})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值