先放一个官方文档
网络 / 发起请求 / wx.request (qq.com)
为避免使用者高频率的点击发送请求
在接口开始时调用wx.showLoading
结束时wx.hideLoading()关闭
界面 / 交互 / wx.showLoading (qq.com)
关于Promise
转载大白话讲解Promise(一) - 吕大豹 - 博客园 (cnblogs.com)
封装url、data
url以 域名+传入的请求地址拼接,域名写在配置文件里
data可以根据后台对接收参数的不同来定制
header的作用
后台filter对登录信息、状态的判断,是否可以访问后台的代码
HttpServletRequest.getHeader("token");
HttpServletRequest.getHeader("openId");
success、fail里该怎么写
success仅仅是成功访问了到了后台接口
fail则是没有访问到后台的接口
讯息的回传
notifyNotify 消息通知 - Vant Weapp (youzan.github.io)
下面这个示例 为一个已经运行的小程序 ,其中的url以及msg仅为示例
/**
* 多笔资料请求
*/
function requestList(url, data = {},limit,page,app) {
wx.showLoading({
title: '数据加载中...',
mask: true
})
return new Promise(function(resolve, reject) {
wx.request({
url: erp+url,
data: {
pageParams: {
conditions: data,
filter: {},
limit: limit,
order: "asc",
pages: page,
}
},
method: "POST",
header: {
'Content-Type': 'application/json',
'openId': wx.getStorageSync('openId'),
'token': wx.getStorageSync('token')
},
success: function(res) {
app.globalData.msg=res.data.msg.msg
if (res.statusCode == 200) {
if (res.data.errCode) {
console.log('res.data.errCode='+res.data.errCode)
Notify({ type: 'warning', message: app.globalData.msg });
switchLogin()
return
}
if (res.data.msg.type == 'info' && res.data.msg.msg != '查询成功') {
Notify({ type: 'success', message: res.data.msg.msg });
}else if(res.data.msg.msg != '查询成功'){
Notify({ type: res.data.msg.type, message: res.data.msg.msg, duration: 5000, });
}
resolve(res.data);
} else {
reject(res.errMsg);
}
},
fail: function(err) {
Notify({ type: 'warning', message: '请求失败,请检查网络连接或联系开发人员' });
reject(err)
},
complete:function() {
wx.hideLoading()
},
})
});
}