/**
* function: 封装网络请求
* @url URL地址
* @params 请求参数
* @method 请求方式:GET/POST
* @onSuccess 成功回调
* @onFailed 失败回调
*/
function request(url, params, method, onSuccess, onFailed) {
wx.showLoading({
title: "正在加载中...",
})
if (url == '/common/user/userInfo') { // 本来想拦截某个接口的,可以忽略
console.log(wx.getStorageSync("token"))
}
wx.request({
url: baseurl + url, // 后台接口
data: dealParams(params), // 参数
method: method, // 请求方式
header: {'token': wx.getStorageSync("token")}, // 带token请求
success: function (res) {
wx.hideLoading();
if (res.data.code == '-1' && res.data.errorCode == '501') { // 拦截是否登陆
wx.navigateTo({
url: '/pages/index/index?reLogin='+ 1,
})
}
if (res.data) {
/** start 根据需求 接口的返回状态码进行处理 */
if (res.data.code == 1) {
onSuccess(res.data); //request success
} else {
onSuccess(res.data);
wx.showToast({
title: res.data.errorMessage,
icon:'none'
}) //request failed
}
/** end 处理结束*/
}
},
fail: function (error) {
onFailed(""); //failure for other reasons
}
})
}
基本方法已经完成,然后就是具体的请求方式的调用:
/**
* get请求
*/
function get(url, params, onSuccess, onFailed) {
request(url, params, "GET", onSuccess, onFailed);
}/**
* 供外部post请求调用
*/
function post(url, params, onSuccess, onFailed) {
request(url, params, "POST", onSuccess, onFailed);
}
/**
* put请求
*/
function put(url, params, onSuccess, onFailed) {
request(url, params, "PUT", onSuccess, onFailed);
}
/**
* delete请求
*/
function delet(url, params, onSuccess, onFailed) {
request(url, params, "DELETE", onSuccess, onFailed);
}
上述是我此次使用到的请求方式,最后exports出去即可,
module.exports = {
postRequest: post,
getRequest: get,
putRequest: put,
deletRequest: delet
}
在其他页面调用:
var http = require('../../utils/util.js');
比如:
http.postRequest('/common/circle/experts/discussAdd', {
targetId: this.data.id,
content: this.data.textarea,
grade: this.data.value
},
(res) => {
this.onClose()
this.setData({
textarea: '',
value: 5.0
})
this.getData()
},
(err) => {
console.log(err);
});
到这里就差不多了