美文网首页
uniapp 实现request携带token

uniapp 实现request携带token

作者: 上海_前端_求内推 | 来源:发表于2021-11-24 16:13 被阅读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)
                    }
                })
            })
        }
    
    

    相关文章

      网友评论

          本文标题:uniapp 实现request携带token

          本文链接:https://www.haomeiwen.com/subject/hztztrtx.html