全局封装 ajax ,方便添加默认参数 ,判断本地存储信息 ,登录情况
// 基准路径
const baseUrl = ‘http://www.xxx.com/xxxx/methods/’
//获取countryCode 和 exchange_rate
function getExrate(url, method, header={}) {
wx.request({
url: baseUrl + url,
method: "GET",
data:{},
header,
success: res => {
if(res.statusCode == 200){
//设置countryCode 和 exchange_rate
let countryCode = res.data.data.countryCode;
let exchange_rate = res.data.data.exchange_rate;
wx.setStorage({
key: "countryCode",
data: countryCode
})
wx.setStorage({
key: "exchange_rate",
data: exchange_rate
})
}
wx.hideLoading()
},
fail: err => {
console.log(err);
}
})
}
// 1.0 返回一个 promise 对象
function request(url, method = ‘GET’, data = {}, header = {}) {
//获取本地存储信息
try {
const res = wx.getStorageInfoSync()
//已经登录 添加user_id
if (res.hhauseUser){
let hhauseUser = JSON.parse(res.hhauseUser)
data.user_id = hhauseUser.user_id
}
//添加来源
data.source = 'WeChat'
if (!res.countryCode || !res.exchange_rate){
getExrate('system.getExrate', method)
}
//添加地区编码
data.countryCode = res.countryCode || "CN"
//添加汇率
data.exchange_rate = res.exchange_rate || "7.0406"
//添加版本
data.v = '1.0'
} catch (e) {
console.log(e);
}
return new Promise((resolve, reject) => {
wx.showLoading({
title: '加载中'
})
// 2.0 完成逻辑处理
wx.request({
url: url,
method: method,
data: data,
header,
success: res => {
resolve(res)
wx.hideLoading()
},
fail: err => {
reject(err)
}
})
})
}
// 封装一个单独的 get 方法
request.get = function (url, data = {}) {
return request(baseUrl + url, ‘GET’, data)
}
// 封装一个单独的 post 方法
request.post = function (url, data = {}) {
return request(baseUrl + url, ‘POST’, data)
}
// 3.0 暴露给外界
export default request