原生Javascript HTTP请求

原生js封装HTTP请求

当在编程时,有时会需要juqery中的AJAX请求数据接口,但有时是由于需求等因素导致的用到原生的JavaScript进行请求,那么为了避免每次都是操作过多的代码,就进行封装一个公共的请求方法,后续直接调用即可请求数据接口

封装方法

function ajax(parmas,fun,errfun){
	var http = null;
	//创建XMLHttpRequest对象,
	//老版本的 Internet Explorer (IE5 和 IE6)使用ActiveX对象:new ActiveXObject("Microsoft.XMLHTTP")
	if(window.XMLHttpRequest){
		xmlhttp = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xmlhttp = new AactiveXObject("Microsoft.XMLHTTP");
	}
	//判断是否支持请求
	if(xmlhttp == null){
		alert("您的浏览器不支持XMLHttp");
		return
	}
	//请求方式转为大写
	var httpType = (params.type || 'GET').toUpperCase();
	//数据类型
	var dataType = params.dataType || 'json';
	//请求接口
	var Url = parmas.url || '';
	//是否异步请求
	var async = params.async || true;
	//请求参数 POST请求参数为: foo=bar&lorem=ipsum*/
	var paramsData = params.data || [];
	var requestData = '';
	for( var name in paramsData){
		requestData += name + ' paramsData[name] ' + '&';
	}
	requestData = requestData == '' ? requestData.substring(0,requestData.length - 1)
	//请求数据
	xmlhttp.onreadystatechange = function(){
		if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
			fun(xmlhttp.responseText);//这里返回的text需要转化成json格式  JSON.parse(xmlhttp.responseText)
		}else{
			errfun();
		}
	}
	//判断接口类型:GET/POST
	if(httpType == 'GET'){
		xmlhttp.open("GET",Url,async);
		xmlhttp.send(null);
	}else if(httpType == 'POST'){
		xmlhttp.open("POST",url,async);
		xmlhttp,setRequerstHeader("Content-type","application/x-www-form-urlencoded");
		xmlhttp.send(requerstData);
	}
}

封装接口调用

	var params = {
		Url: 'www.xxxxx.xxxxx',
		type: 'GET'
	}
	ajax(params,function(res){
		console.log('请求成功');
	},function(res){
		console.log("请求失败");
	})
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值