1、新建封装请求 api/request.js
// 配置的域名
const baseUrl = "xxxxxxxxxxxxxx" // 请求公共接口
// 封装请求
module.exports = {
/**
* 二次封装wx.request
* url:请求的接口地址
* method:请求方式 GET,POST....
* data:要传递的参数
*/
request: (url, method, data) => {
return new Promise((resolve, reject) => {
wx.showLoading({
title: '加载中',
});
wx.request({
url: `${baseUrl}${url}`,
data: data,
method: method,
header: {
'content-type': (method == 'GET') ? 'application/x-www-form-urlencoded' :
'application/json',
'Cookie': wx.getStorageSync('Cookie') || ''
},
success: (res) => {
if (res.statusCode == 200 && res.cookies && res.cookies[0]) { // 获取token
resolve(res);
} else if (res.statusCode == 200 && res.data.code == 200) { // 成功返回值
resolve(res.data.data);
} else if (res.statusCode == 200 && res.data.code != 200) { // 错误时提示
wx.showToast({
title: res.data.message,
icon: 'none'
});
}
},
fail: () => {
reject('数据错误')
},
complete: () => {
setTimeout(() => {
wx.hideLoading();
}, 100);
},
});
});
},
}
2、封装所有请求 api/http.js
//引入封装的reuest请求
const {
request
} = require('./request.js')
//基于业务封装的接口
module.exports = {
// 登录
getLogin: (data) => {
return request('/***/***/***/login', 'POST', data);
},
// 获取商品信息
getGoodsDetails: (data) => {
return request('/***/***/***/goodsDetails', 'GET', data);
},
}
3、引入请求并使用 login.js
// 引入登录接口
const {
login
} = require('../../api/http.js')
Page({
data: {
username: '',
pwd: ''
},
onLoad() {
let params = {
username: this.data.username,
pwd: this.data.pwd
}
// 登录
login(params).then(res => {
wx.setStorageSync('Cookie', res.cookies[0])
wx.switchTab({
url: '../index/index'
})
})
},
// 退出登录
handleLogOut() {
wx.clearStorageSync()
wx.navigateTo({
url: '../login/login'
})
},
})