uniapp封装request.js

169 阅读1分钟

request.js

import BASE_URL from "@/utils/env.js";

export const request = (options = {}) => {
	return new Promise((resolve, reject) => {
		uni.request({
			url: BASE_URL + options.url, // 拼接url
			timeout: 9000,
			method: options.method || 'GET', // 请求方法
			data: options.data || {}, // 请求参数
			header: options.header || {
				'Content-Type': 'application/json'
			}, // 请求header
			success: (res) => {
				if(res.statusCode !== 200 && res.statusCode !== 201){
					return uni.showToast({
						title:"请求失败! 请检查网络连接状态",
						icon: "none"
					})
				};
				// 请求成功
				resolve(res);
			},
			fail: (err) => {
				// 请求失败处理
				uni.showToast({
					icon: "none",
					title: '请求失败!请检查网络连接状态'+ JSON.stringify(err),
					content: err,
				});
				console.log(BASE_URL + options.url, err);
				reject(err);
			},
		});
	});
};

env.js

let BASE_URL
//开发环境中
if (process.env.NODE_ENV === 'production') {
 
} else {
  // 生产环境
 BASE_URL = 'yourURL';
}
 
export default BASE_URL

将api写成js文件

import {
	request
} from "@/utils/request.js";

/* import request from "@/utils/request2.js"; */



//获取餐品分类
export const getCategories = (isvip) => {
	return request({
		url: 'dcgl/orderMeal/getZdLabel',
		
		data:{
			isvip:isvip
		}
	})
}

在使用页面调用

	import {
		getCategories,
	} from '@/api/dc/dc.js';
        
        
        getCategories() {
		getCategories(this.isvip).then(res => {
			this.categories = res.data.data;
			/* console.log(this.categories); */
			})
	},
        
        onLoad():{
        this.getCategories();
        }