微信小程序 封装axios

方法一

request.js

const app = getApp();
const baseURL = app.globalData.baseURL

// 不携带token
function httpRequest(url,method,data){
	return new Promise(function (resolve, reject) {
		let header = {
		    'content-type': 'application/json'
		};
		
		wx.request({
		    url: baseURL + url,
		    method: method,
		    data: data,
		    header: header,
		    success(res) {
		        //请求成功
		        //判断状态码---errCode状态根据后端定义来判断
		        if (res.data.status == 200) {
		            resolve(res.data);
		        } else {
		            //其他异常
		            reject(res.msg);
		        }
		    },
		    fail(err) {
		        //请求失败
		        reject(err)
		    }
		})
	})
}

// 携带token
function httpTokenRequest(url,method,data) {
    return new Promise(function (resolve, reject) {
        let header = {
            'content-type': 'application/x-www-form-urlencoded',
            "token": app.globalData.token
		};
        wx.request({
            url: baseURL + url,
            method: method,
            data: data,
            header: header,
            success(res) {
                //请求成功
                //判断状态码---errCode状态根据后端定义来判断
                if (res.data.status == 200) {
                    resolve(res.data);
                } else {
                    //其他异常
                    reject(res.msg);
                }
            },
            fail(err) {
                //请求失败
                reject(err)
            }
        })
    })
}
module.exports = {
	httpRequest,
	httpTokenRequest
};

api.js

const request = require('./request.js');

const API = {
	//登录
	login: (data) => request.httpTokenRequest("login", "get", data),
}

module.exports = API;
 

方法二 (推荐使用)

request.js

const baseURL = 'https://app.lfywkeji.com'

function request(url, method, params) {
    return new Promise((resolve, reject) => {
        uni.request({
            url: baseURL + url,
            method: method,
            timeout: 10000,
            header: {
                "Accept": "application/json",
                "content-type": "application/json; charset=UTF-8",
                "Authorization": uni.getStorageSync('token') ? uni.getStorageSync('token') : ''
            },
            data: params ? params : '',
        }).then(res => {
			if(res[1].data.code == 200){
				resolve(res[1])
			}else if(res[1].data.code == 401){
				uni.removeStorageSync('token')
				uni.removeStorageSync('myInfo')
			}else if(res[1].data.code == 1502){
				uni.removeStorageSync('token')
				uni.removeStorageSync('myInfo')
				uni.showModal({
					title: '提示',
					showCancel: false,
					content: '登录已过期,请重新登录',
					success: (res) => {
						if(res.confirm){
							uni.reLaunch({
								url: '/pages/login/index'
							})
						}
					}
				})
				
			}else{
				uni.showToast({
					icon:"none",
					title: res[1].data.message,
					duration: 2000
				})
			}
        }).catch(err => {
            reject(err[1])
        })
    })
}

function get(url, params) {
    return request(url, 'GET', params)
}

function post(url, params) {
    return request(url, 'POST', params)
}

export {
    get,
    post
}
 

api.js

const request = require('./request.js');

// 登录
export const authLogin = (params) => request.get('/rest/authLogin', params);