uniapp 实现request携带token

2021-11-24  本文已影响0人  上海_前端_求内推

方式1

//const baseUrl =`http://192.192.192.183:9798` 
import basesevers from './basesevers.js'
const baseUrl = basesevers.request1
const request = (url = '', date = {}, type = '', header = {}, responseType = '') => {
    return new Promise((resolve, reject) => {
        // #ifdef H5 
        const token = uni.getStorageSync('access_token');
        if(!token){
            window.location = "/#/pages/logo/logo";
            return;
        }else{
            let key='Authorization'
            let value='Bearer ' + token + ''
            header[key]=value
        }
        //#endif
        // #ifdef MP-WEIXIN
        const token = uni.getStorageSync('access_token');
        if(!token){
            uni.clearStorageSync()
            uni.reLaunch({ //信息更新成功后跳转到小程序首页
                url: '/pages/404/sq'
            });
            return;
        }else{
            let key='Authorization'
            let value='Bearer ' + token + ''
            header[key]=value
        }
        //#endif
        uni.showLoading({
            title: '加载中',
        })
        uni.request({
            method: type,
            url: baseUrl + url,
            data: date,
            responseType: responseType,
            header: header,
        }).then((response) => {
            setTimeout(function() {
                uni.hideLoading();
            }, 200);
            let [error, res] = response;
            resolve(res.data);
        }).catch(error => {
            let [err, res] = error;
            reject(err)
        })
    });
}
export default request

方式2

//功能:暴露接口

// const BASE_URL = process.env.NODE_ENV === 'production' ? `http://192.192.192.183:9798/`:`/api/`;
import basesevers from '../common/basesevers.js'
let BASE_URL = basesevers.request1+`/`
    // #ifdef H5
// BASE_URL='/api/'
// #endif
export const myRequest = (options) => { //暴露一个function:myRequest,使用options接收页面传过来的参数
        return new Promise((resolve, reject) => { //异步封装接口,使用Promise处理异步请求
            // #ifdef H5
            const token = uni.getStorageSync('access_token');
            if(!token){
                window.location = "/#/pages/logo/logo";
                return;
            }else{
                   options.header = {
                           'Authorization' : 'Bearer ' + token
                         };
            }
            //#endif
            // #ifdef MP-WEIXIN
            const token = uni.getStorageSync('access_token');
            if(!token){
                uni.clearStorageSync()
                uni.reLaunch({ //信息更新成功后跳转到小程序首页
                    url: '/pages/404/sq'
                })
                return;
            }else{
            options.header = {
                    'Authorization' : 'Bearer ' + token
                  }
            }
            //#endif
            uni.showLoading({
             title: '加载中',
            })
            uni.request({ //发送请求
                url: BASE_URL + options.url, //接收请求的API
                method: options.method || 'GET', //接收请求的方式,如果不传默认为GET
                data: options.data || {}, //接收请求的data,不传默认为空
                success: (res) => { //数据获取成功
                    uni.hideLoading();
                    resolve(res) //成功,将数据返回
                },
                fail: (err) => { //失败操作
                    uni.showToast({
                        title: "请求接口失败!"
                    })
                    reject(err)
                }
            })
        })
    }

上一篇下一篇

猜你喜欢

热点阅读