requestServer.js 3.34 KB
import common from "./common.js";

export const myRequest = (options) => {
    // 调接口加载
    uni.showLoading({
        title: "加载中",
        mask: true,
    });
    return new Promise((resolve, reject) => {
        uni.request({
            url: common,
            //默认参数
            data: options.data || {},
            // 配置请求头参数-例如token
			header: { 
				'content-type': 'application/json', 
				Token: common.SetToken,
				 // Accept: 'application/json',
				 // 'Content-Type': 'application/json',
				 // 'X-Requested-With': 'XMLHttpRequest'
				 },
			dataType: "json",
            method: options.method || 'GET',
            // sslVerify: true,

            // 接口请求成功
            success: (res) => {
                // 关闭加载
                uni.hideLoading();
                console.log('接口所有参数', res);
                if (res.statusCode !== 200) {
                    // 不同报错信息的提示和配置
                    if (res.statusCode == 500) {
                        return uni.showToast({
                            title: '服务器重启中...',
                            icon: "none",
                            mask: true,
                        })
                    } else {
                        return uni.showToast({
                            title: '获取数据失败',
                            icon: "none",
                            mask: true,
                        })
                    }
                }
                // 调用成功且有数据 返回数据  组件内通过 .then() 或者async await 接受异步返回数据
                //resolve(res.data)
                //在接口200 调用成功后 才能进行判断接口内的状态码 return_code 以此判定作何操作和提示
		        const { statusCode, data } = res
		        let return_code = res.data.return_code
		        let return_message = res.data.return_message
		        switch (return_code) {
		          case '0':
		            // 成功的数据data状态码  则直接返回数据
		            resolve(res.data)
		            break
		          case '4011':
		            uni.clearStorage()
		            if (hasUserInfo && !isExisited && !checkToken) {
		              isExisited = true
		              uni.showModal({
		                title: '提示',
		                content: '身份失效,请重新登录!',
		                complete: () => {
		                  uni.reLaunch({ url: '/pages/index/index' })
		                },
		              })
		            } else {
		              reject(res.data)
		            }
		            break
		          default:
		            // 其他的如无特定要求 则做提示
		            // reject(res.data)
		            return uni.showToast({
		              title: return_message || '请求失败',
		              duration: 2000,
		              icon: 'none',
		            })
		        }
            },

            // 接口接口失败
            fail: (error) => {
                // 关闭加载
                uni.hideLoading();
                console.log(2, error);
                uni.showToast({
                    title: '请求接口失败',
                    icon: "none",
                    mask: true,
                })
                // 失败数据
                reject(error)
            }
        })
    })
}