uniapp封装request请求

request.js   封装请求拦截器

import {
    BASE_URL
} from "@/config/index.js";



export default class Request {

    http(param) {
        // 请求参数
        var url = param.url,
            method = param.method,
            header = {},
            data = param.data || {},
            token = param.token || "",
            hideLoading = param.hideLoading || false;

        //拼接完整请求地址
        var requestUrl = BASE_URL + url;


        //请求方式:GET或POST(POST需配置
        // header: {'content-type' : "application/x-www-form-urlencoded"},)
        if (method) {
            method = method.toUpperCase(); //小写改为大写
            if (method == "POST") {
                header = {
                    'content-type': "application/x-www-form-urlencoded"
                };
            } else {
                header = {
                    'content-type': "application/json"
                };
            }
        }
        //token
        header.Authorization = 'Bearer xxxx'
        //加载圈
        if (!hideLoading) {
            uni.showLoading({
                title: '加载中...'
            });
        }

        // 返回promise
        return new Promise((resolve, reject) => {
            // 请求
            uni.request({
                url: requestUrl,
                data: data,
                method: method,
                header: header,
                success: (res) => {
                    // 判断 请求api 格式是否正确
                    if (res.code && res.code != 0) {
                        uni.showToast({
                            title: "api错误" + res.msg,
                            icon: 'none'
                        });
                        return;
                    }
                    // 将结果抛出
                    resolve(res.data)
                },
                //请求失败
                fail: (e) => {
                    uni.showToast({
                        title: "" + e.data.msg,
                        icon: 'none'
                    });
                    resolve(e.data);
                },
                //请求完成
                complete() {
                    //隐藏加载
                    if (!hideLoading) {
                        uni.hideLoading();
                    }
                    resolve();
                    return;
                }
            })
        })
    }
}

api.js 定义请求api

import Request from "@/utils/request.js";
let request = new Request().http
import {
    BASE_URL
} from "@/config/index.js";


//测试
export const fetchList = (params) => {
    return request({
        url: "/xxx/xxx", 
        method: "GET", //请求方式
        // data: data, //请求参数
    })
};

test.vue中发请求

import { fetchList } from '@/api.js';

fetchList()
    .then(res => {
        console.log(111111111);
    })
    .catch(err => {
        console.log(222);
    });

你可能感兴趣的:(uniapp,uni-app)