小程序封装网络请求
话不多说,直接上代码
//定义主链接
var rootDocment = 'https://xxx/xxx';
var header = {
'Accept': 'application/json',
'content-type': 'application/json',
'Authorization': null,
}
function ajaxRequest(url, data, method, headers, callback){
// 请求头会设置有默认值,有传值时相同会替换,有新增的话就加进去
if(headers && typeof headers === 'object'){
Object.keys(headers).forEach((item)=>{
header[item] = headers[item]
})
}
// 字符串拼接
const downloadParam = function(obj) {
var dataStr = '';
for (var name in obj) {
if (Array.isArray(obj[name])) {
for (var i = 0; i < obj[name].length; i++) {
dataStr = dataStr + '&' + name + '=' + (obj[name] == null ? '' : obj[name][i]);
}
} else {
dataStr = dataStr + '&' + name + '=' + (obj[name] == null ? '' : obj[name]);
}
}
dataStr.substr(1) ? dataStr = '?' + dataStr.substr(1) : dataStr = '';
return dataStr;
}
// 判断类型是get还是post
if(method === 'get'){
// get类型自动拼接字符串
var str = downloadParam(data);
wx.request({
url: rootDocment + url + str,
method: 'get',
header: header,
success: function (res) {
wx.hideLoading();
return typeof callback == "function" && callback(res.data)
},
fail: function () {
wx.hideLoading();
wx.showModal({
title: '网络错误',
content: '网络出错,请刷新重试',
showCancel: false
})
return typeof callback == "function" && callback(false)
}
})
}else if(method === 'post'){
wx.request({
url: rootDocment + url,
header: header,
data: data,
method: 'post',
success: function (res) {
wx.hideLoading();
return typeof callback == "function" && callback(res.data)
},
fail: function () {
wx.hideLoading();
wx.showModal({
title: '网络错误',
content: '网络出错,请刷新重试',
showCancel: false
})
return typeof callback == "function" && callback(false);
}
})
}
}
module.exports = {
ajaxRequest: ajaxRequest,
}
//如果该文件是api.js,那使用方法应该就是
//api.ajaxRequest(url, data, method, headers, function(data){
// if(data){
// }
//})