/apis/request.js

let defaultUrl = ''; // 域名地址

if (process.env.NODE_ENV === 'development') { // 开发环境
	// #ifdef H5
	defaultUrl = '本地url'
	// #endif
} else { // 生产环境
	// #ifdef H5
	defaultUrl = '线上url';
	// #endif
}

// #ifdef APP-PLUS || MP-WEIXIN
defaultUrl = '线上url';
// #endif

import store from "@/store"

const request = ({
	url,
	data,
	method
}) => {
	return new Promise((resolve, reject) => {
		uni.request({
			url: defaultUrl + params.url,
			method: params.method || 'post',
			data: params.data,
			dataType: 'json',
			header: {
				'X-Requested-With': 'XMLHttpRequest',
				'Content-Type': 'application/json; charset=UTF-8',
				'Authorization': store.state.token,
				'Apptype': store.state.apptype,
			},
			success: (res) => {
				if (res.data.code === 1000) { // token过期状态,需要重新登录
					store.dispatch('resetStates') // 清除vuex缓存
                    // 跳回登录页 
					uni.redirectTo({
						url: '/pages/outside/login' 
					})
				} else {
					resolve(res.data)
				}
			},
			fail(err) {
				if (err.errMsg === "request:fail") {
					uni.showToast({
						title: "网络请求错误",
						icon: 'none'
					})
				}
				reject(err)
			},
			complete() {

			}
		})
	})
}

export default request

/apis/index.js

import request from "@/request";
export default {
	aaaaa(data) {
		return request({
			url: "apiurl",
			method: "post",
			data: data,
		});
	},
}

main.js 挂载到Vue实例上

export function createApp() {
	const app = createSSRApp(App)

	//API引用
	app.config.globalProperties.$api = apis;

	return {
		app
	}
}

页面使用

let res = await this.$api.aaaaa({
	aa: 111,
	bb: 222
})
if(res.code===200){
				
}else{
				
}

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐