uniapp 模拟请求自身的JSON模拟数据
admin
2024-01-20 04:01:25

/**
 * 我们可以在main.js中引用/config/request.js,注意引用的位置,需要在new Vue得到Vue实例之后,如下:
 * // 引入请求封装,将app参数传递到配置中
 * require('/config/request.js')(app)
 **/
// 此vm参数为页面的实例,可以通过它引用vuex中的变量

module.exports = (vm) => {
    // 初始化请求配置
    uni.$u.http.setConfig((config) => {
        /* config 为默认全局配置*/
        config.baseURL = '100'; /* 根域名 */
        return config
    })
    
    // 请求拦截
    uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
    
        if(config.baseURL=="100"){ //模拟 
            config.baseURL ="http://IP:8080/static/server/data.json"; 
            config.url="";
            config.method ="GET";
            config.header={
                'Access-Control-Allow-Origin':'*',
                'Access-Control-Allow-Headers':'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild',
                'Access-Control-Allow-Methods':'PUT, POST, GET, DELETE, OPTIONS'
            };
            //console.log(config);
        }else{
            // 初始化请求拦截器时,会执行此方法,此时data为undefined,赋予默认{}
            config.data = config.data || {}
            // 根据custom参数中配置的是否需要token,添加对应的请求头
            if(config?.custom?.auth) {
                // 可以在此通过vm引用vuex中的变量,具体值在vm.$store.state中
                config.header.token = vm.$store.state.userInfo.token
            }
        }
        return config 
    }, config => { // 可使用async await 做异步操作
        return Promise.reject(config)
    })
    
    // 响应拦截
    uni.$u.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
        const data = response.data;
        if(data.code == 200001){ //模拟数据
            let api_url=response.config.data.url;
            return data.data[api_url];//返回模拟数据
        }else{
            return data.data === undefined ? {} : data.data
        }
    }, (response) => { 
        // 对响应错误做点什么 (statusCode !== 200)
        return Promise.reject(response)
    })
}

/static/server/data.json 格式

{
    "code": 200001,  //返回状态; 200:成功 ;   200001:本地模拟返回
    "data":{
        "api_publicApi_init":{   //初始化接口返回数据
            "ewsdsd":"wesdsd"
        }
    }
}

相关内容

热门资讯

俄媒:俄罗斯来华游客数量稳步增... 参考消息网11月19日报道 据俄罗斯自由媒体网11月17日报道,自9月15日中国对俄罗斯游客试行免签...
“根本不愁卖,来晚了就没了”!... “在网上看到了,特地来尝鲜。”近日,“00后”陈女士打卡了一款名为“奶皮子糖葫芦”的零食。这款零食由...
重磅发布!2026全球高端餐厅... 来源:携程美食林 当用户真实评价 与顶尖美食家的专业洞察交汇 呈现给所有人的不仅是榜单的更迭 更是携...
治愈系美食爱情微短剧《宴遇簪花... 作为泉州成功入选“世界美食之都”后的首部治愈系美食爱情微短剧,《宴遇簪花缘》今日正式公布首轮剧照。首...
【京·花果蜜】怀柔栗子天团,申... 谁能拒绝这一美味?栗子酥、冰栗、栗子蛋糕…个个都是实力派!这口百年老树的甜,你最爱哪一款?