
axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,简单的理解就是ajax的封装。
在Vue 版本推荐使用 axios 来完成 ajax 请求。
安装方法:
方法一、npm安装
命令:$ npm install axios
方法二、直接引入
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
axios的简单封装,可以直接复制使用,代码如下:
//封装axios函数
function hiAxios(url,...args){ if(typeof(url)=="object"){ return axios(url); }else{ let obj = {}, fn = function () { }, method = 'get', fdata = function (obj, type) { if (type == 'get') { return { params: obj }; } else { let params = new FormData(); for (let key in obj) { params.append(key, obj[key]); } return params; } }, getVals = function (val) { switch (typeof (val)) { case 'string': method = val; break; case 'function': fn = val; break; case 'object': obj = val; break; } }, res=function(obj){ let res=obj.status==200?obj.data:obj; fn(res); }; args.forEach(function (item, index) { getVals(item); }); switch (method) { case 'get': axios.get(url, fdata(obj, method)).then(function(response){ res(response); }).catch(function (error) { res(error); }); break; case 'post': axios.post(url, fdata(obj, method)).then(function(response){ res(response); }).catch(function (error) { res(error); }); break; } } }
调用实例
使用方法一:直接调用
语法:hiAxios(url[,get|post,data,fn]),注意:默认get方式;其中data参数类型为object;fn为回调函数
代码如下:
hiAxios('test.php');
//或
hiAxios('test.php', function(res){ alert(JSON.stringify(res)); });
//或
hiAxios('test.php', 'post', {name:'哈喽吧', domain:'www.hilo8.com'}, function(res){ alert(JSON.stringify(res)); });
使用方法二: 传递相关配置来创建请求
语法:hiAxios(config),跟原始api一样
代码如下:
hiAxios({
//请求的服务器 URL
url:'test.php',
//请求时使用的方式,默认get
method:'get',
//允许在向服务器发送前,修改请求数据
transformRequest: [function (data) {
//console.log(data);
return data; //可用于post方式请求时序列化data参数
}],
//在传递给 then/catch 前,允许修改响应数据
transformResponse: [function (data) {
//console.log(data);
return data;
}],
//get方式传递参数
params: {
name: '哈喽吧'
},
//post方式传递参数
data: {
domain: "www.hilo8.com"
},
//...更多配置参数
})
.then(res=>{ alert(JSON.stringify(res)); })
.catch(err=>{ alert(err); });
下一篇:FCUP-大文件切片上传js插件
讨论数量:0