话不多数直接上代码!
在app.js文件中加入,一般新建的项目都有globalData只需要在里面添加你的信息就行了
globalData: {Ip:'',Header:{//request 请求头'content-type': 'application/x-www-form-urlencoded;charset=utf-8', // 默认值'Authorization': ''},}
新建一个js文件在里面加上如下代码
const app=getApp()export default (url, data={}, method='GET') => {return new Promise((resolve, reject) => {// 1. new Promise初始化promise实例的状态为pendingwx.request({url: app.globalData.Ip + url,data,method,header:app.globalData.Header,success: (res) => {resolve(res.data); // resolve修改promise的状态为成功状态resolved},fail: (err) => {console.log('请求失败: ', err);reject(err); // reject修改promise的状态为失败状态 rejected}})})}
下面是如何使用,首先在顶部做引用,添加自己需要访问的url地址,注意要和前面在globalData里面定义的ip做拼接使用
import request from ''const url=''
下面就是具体的方法调用request请求
async getInfo(){let info = await request(url,{});consolo.log(info)},async update(){let res = await request(url,{json:{id:1,name:'张三'}},'POST');consolo.log(res)},
到这里一个简单的request请求的封装以及调用就做好了,下面是升级版,在公司里做的朋友都知道,一般公司里面给的接口都需要在请求头里面加token才能访问,像注册登录之类的借口才会放到白名单里面,下面是升级之后的代码
const app=getApp()export default (url, data={}, method='GET') => {return new Promise((resolve, reject) => {let userInfo=wx.getStorageSync('userInfo')if(userInfo.data){app.globalData.Header.Authorization = userInfo.data.token;}// 1. new Promise初始化promise实例的状态为pendingwx.request({url: app.globalData.Ip + url,data,method,header:app.globalData.Header,success: (res) => {if(data.is_login){// 登录请求// 将用户信息存入至本地wx.setStorageSync('userInfo', res.data)}resolve(res.data); // resolve修改promise的状态为成功状态resolved},fail: (err) => {console.log('请求失败: ', err);reject(err); // reject修改promise的状态为失败状态 rejected}})})}
下面是如何登录的,一般的话登录都需要appid,code,wx.login可以获取到code,appid可以放在globalData里面
import request from ''const url=''//登录调用request//登录doLogin(){let that = thiswx.login({success (res) {that.setData({code:res.code})that.login(that,res.code)}})},async login(that,code){let res = await request(url, {appid:that.data.appid,code:code,is_login:true});if(res.code==200&&res.data){wx.reLaunch({url: '../home/home',})}else{console.log(res)wx.showToast({title: '请退出,重新登录!',icon:'error'})}}
大致的就这麽多了,如果有帮助到您,请给个关注,加个收藏,这将是我创作的最大力量,谢谢!