在日常开发过程中,一般请求我们都会携带token,以保证安全性

1、在工程目录下新建个common文件夹

在common目录下新增request.js

//请求函数
const request = (url = '', data = {},type = 'POST', header = {}) => {
	// 缓存中获取token 
	 header.token = data.token? data.token:uni.getStorageSync('token');
	 //请求地址
	 var baseUrl =  'http://localhost:9001/v1/openApi/';  
    return new Promise((resolve, reject) => {
        uni.request({
            method: type,
            url: baseUrl +url,
            data: data,
            header: header,
            dataType: 'json',        
        }).then((response) => {
            uni.hideLoading();
            uni.stopPullDownRefresh();
            let [error, res] = response;
			
			console.log(res,'res');
            if(res.data.code == 200){
                setTimeout(function () {
                    resolve(res.data);
                }, 1000);
            }else if(res.data.code == 401){   //token失效时重新登录
                uni.showToast({
                    title:res.data.msg,
                    image:'../../static/public/close.png',
                    duration: 2000,
                });
				setTimeout(function(){
					uni.navigateTo({
					    url: '/pages/login/login_vfcode',
						complete(e){
							console.log(e,'eeeeeeeeee')
						}
					});
				},1000);
				
            } else if(res.data.code == -100){   //-100时返回处理
			uni.showToast({
			    title:res.data.msg,
			    duration: 1000,
			});
			setTimeout(function () {
				//回调
			    resolve(res.data);
			}, 1000);
			
            }else {  //其它code 返回提示
                uni.showToast({
                    title:res.data.msg,
                    image:'../../static/public/close.png',
                    duration: 2000,
                });
            }
        }).catch(error => {
            uni.hideLoading();
            uni.stopPullDownRefresh();
            let [err, res] = error;
            reject(err)
			console.log(error ,'请求返回error')
        })
    });
}
 
//定义对象
var api = {
	request
};
 
export default api

这里我是把token加到了请求头里

2、在 main.js 中引入、定义

import request from 'common/request.js'  //引入封装全局
 
 
 
 
Vue.prototype.$api = request  

3、实际使用

	this.$api.request('getBookingList', 
			{time: '2021-11-10'}, 
			'post').then((res) => {
		console.log(res, 'res----');
	});

Q.E.D.


一个爱折腾的小伙子