uniapp请求方法的封装

之前在接触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 => {
                   
                }); 

 

大概就是这样,内容有删减,目的是让大家看着干练,如有疑惑评论就好
posted @ 2020-08-27 11:55  purple_sunset  阅读(4502)  评论(0编辑  收藏  举报