与牧同行-小程序用户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

84 lines
2.5 KiB

var baseUrl = require('../utils/baseUrl')
var ajaxtimes = 0
module.exports = {
http(url, method, params) {
//发送一次请求就加1
ajaxtimes++
let token = 'token' // 获取token,自行获取token和签名,token和签名表示每个接口都要发送的数据
let sign = 'sign' // 获取签名 (后台怎么定义的,就传什么)
let data = {
token,
sign
}
wx.showLoading({
title: '加载中...',
})
let urls = baseUrl + url
if (params.data) { // 在这里判断一下data是否存在,params表示前端需要传递的数据,params是一个对象,有三组键值对,data:表示请求要发送的数据,success:成功的回调,fail:失败的回调,这三个字段可缺可无,其余字段会忽略
for (let key in params.data) { // 在这里判断传过来的参数值为null,就删除这个属性
if (params.data[key] == null || params.data[key] == 'null') {
delete params.data[key]
}
}
data = {
...data,
...params.data
}
}
if (params.id) {
urls = urls + '/' + params.id
}
// console.log(urls);
var value = null
try {
value = wx.getStorageSync('token')
if (value) {
// console.log(value);
}
} catch (e) {
// Do something when catch error
}
wx.request({
url: urls, // 就是拼接上前缀,此接口域名是开放接口,可访问
method: method, // 判断请求类型,除了值等于'post'外,其余值均视作get 其他的请求类型也可以自己加上的 method: method == 'post' ? 'post' : 'get'
data,
header: {
'content-type': 'application/json',
'Authorization':'Bearer '+ value
},
success(res) {
// console.log(res);
if(res.data.code == 401){
wx.showModal({
title: '提示',
content: '登录已过期,请重新登录',
success (res) {
if (res.confirm) {
wx.reLaunch({
url: '/pages/login/login',
})
} else if (res.cancel) {
}
}
})
}else{
params.success && params.success(res.data)
}
},
fail(err) {
params.fail && params.fail(err)
},
complete(){
//完成一次请求就减一
ajaxtimes--;
if(ajaxtimes===0){
wx.hideLoading()
}
},
})
}
}