关于请求方式封装的方式GET,PUT,POST,DELETE

1、现在用vue多封装方式很多提供一个模板封装的方式,之争对vue中使用

//使用方法
apiMethods('路径',参数,"请求方式").then(res => {
			if (res.success) {
				$.messager.alert("系统提示", res.message, 'info');
			}
		}).catch(err => {
		  $.messager.alert("提示信息", err.message)
		})
/**
*url :路径
*opt :参数
*methods:请求方式
*直接使用接口访问就可以,不需要添加IP地址
**/
function api(url,opt,methods) {
      return new Promise(function(resove,reject){
        methods = methods || 'POST';
        var xmlHttp = null;
        if (XMLHttpRequest) {
          xmlHttp = new XMLHttpRequest();
        } else {
          xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
        };
        var params = [];
        for (var key in opt){
          if(!!opt[key] || opt[key] === 0){
            params.push(key + '=' + opt[key]);
          }
        };
        var postData = params.join('&');
        if (methods.toUpperCase() === 'POST') {
          xmlHttp.open('POST', url, true);
          xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
          xmlHttp.send(postData);
        }else if (methods.toUpperCase() === 'GET') {
          xmlHttp.open('GET', url + '?' + postData, true);
          xmlHttp.send(null);
        }else if(methods.toUpperCase() === 'DELETE'){
          xmlHttp.open('DELETE', url + '?' + postData, true);
          xmlHttp.send(null);
        }
        xmlHttp.onreadystatechange = function () {
          if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
            resove(JSON.parse(xmlHttp.responseText));
          }
        };
      });
    }
    export default api;

2、使用原始的封装方法(参考ajax的请求方式),ajax的请求方式只存在get、post的方式,添加delete看的请求方式

ajaxMethods({
		   method: 'delete',//请求方式
		   url: '',//路径
		   data: {},//参数
		   success: function(res) {
		   		console.log(JSON.stringify(res.response));
				 var date=eval("("+res.response+")");//转换返回的格式
				if (date.success) {
					$.messager.alert("系统提示", date.message, 'info');
				}else{
					$.messager.alert("系统提示", date.message, 'info');
				}
		   }
		});
/******封装的公共方法,使用时提前引用*********/
function ajaxMethods(options) {//请求方式
	var method = options.method || 'get'; //请求方法,默认get
	var url = options.url || ''; //请求url
	var succFn = options.success || function(){console.log('请求成功!')}; //请求成功回调
	var data = options.data || null; // 请求数据
	var isAsync = options.async === undefined ? true : options.async; //是否是异步请求,默认true
	var isFormData = options.isFormData || false; //是否采用表单提交数据的方式,默认false
	var jiekou = "http://localhost:8090/"
	methods = options.method || 'get';
	var xmlHttp = null;
	if (XMLHttpRequest) {
	  xmlHttp = new XMLHttpRequest();
	} else {
	  xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
	};
	var params = [];
	for (var key in options.data){
	  if(!!data[key] || data[key] === 0){
		params.push(key + '=' + data[key]);
	  }
	};
	var postData = params.join('&');
	if (methods.toUpperCase() === 'POST') {
	  xmlHttp.open('POST',jiekou + url, true);
	  xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
	  xmlHttp.send(postData);
	}else if (methods.toUpperCase() === 'GET') {
	  xmlHttp.open('GET',jiekou + url + '?' + postData, true);
	  xmlHttp.send(null);
	}else if(methods.toUpperCase() === 'DELETE'){
	  xmlHttp.open('DELETE',jiekou + url + '?' + postData, true);
	  xmlHttp.send(null);
	}
	xmlHttp.onreadystatechange = function () {
	  if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
		succFn(xmlHttp);
	  }
	};
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值