uni.request({
url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
data: {
text: 'uni.request'
},
header: {
'custom-header': 'hello' //自定义请求头信息
},
success: (res) => {
console.log(res.data);
this.text = 'request success';
}
});
这是uniapp官网发起请求的方法,可见其为异步请求;
接下来,我们来二次封装咱们的项目逻辑,如果你对Promise不大了解,建议先去了解了解!
request.globalRequest = (url, method, data) => {
const token = uni.getStorageSync('token');
headers['Content-Type'] = 'application/x-www-form-urlencoded'
if (token != ""){
headers['Authorization'] = 'Bearer' + token
}//请求携带token
return uni.request({
url: url,
method,
data: data,
dataType: 'json',
sslVerify:false,
header: headers
}).then(res => {
// return res[1]
if (res[1].data.err == 0) {//后端业务逻辑,err=0成功,err=1失败,根据自己业务逻辑改变。
return res[1]
} else {
throw res[1].data //抛出异常
}
}).catch(parmas => {
switch (parmas.code) {
case 401:
// 登录失败,未授权
uni.clearStorageSync()//同步清理本地数据缓存。
break
default:
uni.showToast({ //弹出异常提醒
title: parmas.msg,
icon: 'none'
})
return Promise.reject()
break
}
})
}
export default request