uniapp封装接口请求方式,全局调用

一、新建一个js文件作为域名封装的文件

uts.js的代码如下:

const BASE_URL = 'https://xxxxxxxxx'; //接口封装域名

export default({
	YM:'https://xxxxxxxx'  //全局公用域名
})

/**
 * 封装请求函数
 * @param {string} url - 请求的接口地址
 * @param {object} data - 请求的数据
 * @param {string} method - 请求的方法,默认为 GET
 * @returns {Promise} - 返回一个 Promise 对象
 */
export function request(url, data = {}) {
	// 假设你从本地存储或其他位置获取 token
	const token = uni.getStorageSync('token'); // 请根据实际情况获取 token

	return new Promise((resolve, reject) => {
		uni.request({
			url: `${BASE_URL}${url}`,
			method: 'POST',
			header: {
				token: `${token}`
			},
			data: data,
			success: (res) => {
				if (res.statusCode === 200) {
					resolve(res.data);
				} else {
					reject(new Error(`请求失败,状态码:${res.statusCode}`));
				}
			},
			fail: (err) => {
				reject(err);
			}
		});
	});
}


export function uploadImage(uploadUrl) {
    return new Promise((resolve, reject) => {
        // 选择图片
        uni.chooseImage({
            success: (chooseImageRes) => {
                const tempFilePaths = chooseImageRes.tempFilePaths; // 获取选择的图片路径

                // 上传图片
                uni.uploadFile({
                    url: `${BASE_URL}${uploadUrl}`, // 接口地址
                    filePath: tempFilePaths[0], // 选择的第一张图片
                    name: 'file',
                    success: (res) => {
                        let Ima = JSON.parse(res.data); // 解析返回的数据
                        const imageUrl = Ima.data.url; // 提取图片 URL
                        resolve(imageUrl); // 返回上传的图片 URL
                    },
                    fail: (err) => {
                        console.error('上传图片失败:', err); // 处理上传失败的情况
                        reject(err); // 传递错误信息
                    }
                });
            },
            fail: (err) => {
                console.error('选择图片失败:', err); // 处理选择图片失败的情况
                reject(err); // 传递错误信息
            }
        });
    });
}

二、在main.js中全局引入,这样在所有页面都可以直接使用封装的接口请求,不用一一引入了(PS:uploadImage是我封装的上传图片的方法也可以直接使用)

import { request,uploadImage} from 'Api/uts.js'; // 引入封装的请求函数
import uts from 'Api/uts.js'; // 引入封装的请求函数

Vue.prototype.$uts = uts.YM

Vue.prototype.$request = request;
Vue.prototype.$uploadImage = uploadImage;

三、在需要请求接口的页面直接使用即可

this.$request('/api/order/olist', data).then((data) => {
	console.log(data,'接口返回的数据')
})


图片上传

this.$uploadImage('/api/common/upload').then((data) => {
	console.log(data, '上传的图片');
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑云压城After

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值