之前在接触uniapp做小程序项目时候,因为不太熟悉,遇到了不少尴尬的时刻,请求方法的封装算是灵魂啊有木有,今天看到有人问题,就把我自己写的发出来让大家参考一下吧。
请求方法的封装我一般用的是promise+axios,因为uniapp有自己规定的请求方式,只好结合着来了。话不多说,直奔主题。
export const baseUrl = '您的域名'
function getHeaders () { let token = getToken() let header = { "token":token,// 'X-Requested-With': 'XMLHttpRequest', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }return header } export default{ get(url,param){ return new Promise((resolve,reject) =>{ uni.request({ method:'GET', url: baseUrl+url, data: param, header:getHeaders() }).then(res=>{ switch (res[1].data.code) { case 200: resolve(res[1]) break case 400: resolve(res[1]) break case 401: resolve(res[1]) break default: reject(res) } }).catch( (response) => { reject(response) } ) }) }, post(url,param){ return new Promise((resolve,reject) =>{ uni.request({ method:'POST', url: baseUrl+url, data: param, header:getHeaders() }).then(res=>{ switch (res[1].data.code) { case 200: resolve(res[1]) break case 400: resolve(res[1]) break case 401: resolve(res[1]) break default: reject(res) } }).catch( (response) => { reject(response) } ) }) }, }
补一个getToken(手动无奈:))
export function getToken () { try { const token = uni.getStorageSync('Token'); if (token) { return token }else{ return '' } } catch (e) { console.log(e) } }
方法定义好了,下面是实战引入了,
import request from '../../units/request.js' 在你需要的页面引入
request.post("/example/list", { currPage:this.page, pageSize:this.limit, }) .then(response => { } }) .catch(ex => { });
大概就是这样,内容有删减,目的是让大家看着干练,如有疑惑评论就好