1.新建一个req.js 储存封装
2.页面调用req.js封装
我判断的code==2时候跳转到登录界面。
code==1弹出错误信息
code==0 时候接口正常走。记得 resolve(res); 重要!
req.js 文件
const GET = 'GET';
const POST = 'POST';
const PUT = 'PUT';
const FORM = 'FORM';
const DELETE = 'DELETE';
const baseURL = 'https://test.你的接口网址.com/index/';
const app = getApp();
function request(url, data,cb) {
return new Promise(function(resolve, reject) {
//公共参数
const uid = wx.getStorageSync('uid');
const api_data = {uid: uid}
wx.showLoading({
title: '加载中',
});
let header = {
'content-type': 'application/json',
};
//合并参数对象
var tmp = Object.assign(data , api_data)
wx.request({
url: baseURL + url,
method: 'POST',
data: JSON.stringify(tmp),
header: header,
success(res) {
wx.hideLoading()
//请求成功
if (res.data.code == 2) {//授权去登录
wx.showToast({
title: res.data.msg,
icon:'none',
})
wx.navigateTo({
url: '../../pages/login/index',
})
} else if(res.data.code == 1){
wx.showToast({
title: res.data.msg,
icon:'none',
})
}else if(res.data.code == 0){
resolve(res);
}else{
wx.showToast({
title: '请求失败',
icon:'none',
})
}
},
fail(err) {
setTimeout(function () {
wx.hideLoading()
}, 1000)
wx.showToast({
title:'网络出错,请刷新重试',
icon:'none',
})
}
})
})
}
export { request };
3.使用封装
头部引入:
var app = getApp();
var request = require('../../utils/req.js');
使用 中间这个request.req.......复制, 写你的接口后缀地址,参数。搞定、
hotIndex(){
var that =this;
request.request('Index/hotIndex',{
page:1,
limit:4,
}).then(res=>{
if(res.data.code==0){
that.setData({
hotIndexList:res.data.data
})
}
})
},
4.附带一个第一步的微信登录文件
封装里的code==2 会自动跳转到这个文件。去授权登录。授权以后,返回上一层。
login/index.wxml
<button class="shouquan" open-type="getUserInfo"bindgetuserinfo="onGotUserInfo">授权登录</button>
var app = getApp();
Page({
data: {
getpage: '',
},
onLoad: function (options) {
var that =this;
},
//没有授权的点击授权
onGotUserInfo: function (e) {
var that = this;
wx.login({
success: res => {
var code = res.code;
//获取用户信息(传给后台)
wx.getUserInfo({
success: function (res) {
wx.request({
url: app.globalData.api_url+'wxchat/authorization',
method: 'GET',
header: {
'content-type': 'application/json' // 默认值
},
data: {
code: code,
encryptedData: res.encryptedData,
iv: res.iv
},
success: function (result) {
if(result.data.code==0){
wx.setStorageSync('uid', result.data.data.id);
wx.setStorageSync('userInfo', result.data.data);
wx.navigateBack({
delta: 1,
})
}else{
wx.showToast({
title: result.data.msg,
icon: 'none',
})
}
}
})
}
});
}
})
},
})