老样子第一步看官网→uni.request(OBJECT) | uni-app官网

先看看为封装之前的官网示例:

                

                                                        冲冲冲!!!

1.新建一个utils文件夹在里面新建一个js文件

2.在新建的文件夹里面(看不懂可以评论区留言)

export const BASE_URL = "http://sale.gomicsgene2.com:8092"
if (process.env.NODE_ENV === 'development') {
	// console.log("开发环境");
} else {
	// console.log("生产环境");
}

export const httpRequest = options => {
	return new Promise((resolve, reject) => {
		if (!options.loading) {
			uni.showLoading({
				title: '加载中',
				mask: true
			})
		}
		let header = {
			token: uni.getStorageSync('token')
		}
		uni.request({
			header: options.header || header,
			url: BASE_URL + options.url,
			method: options.method || "GET", // 请求类型,默认为GET
			data: options.data || {}, // 请求参数,默认空对象
			success: res => {
				console.log(res.code)
				if (res.data.code == 200) {
					resolve(res.data)
					uni.hideLoading()
				}
				else if (res.data.code == 20007) {
					console.log(20007)
					resolve(res.data)
					uni.reLaunch({
						url: '/pages_subPackages/login/login'
					})
				}
				else if (res.data.code == 401) {
					console.log(401)
					uni.clearStorage()
					uni.hideLoading()
					uni.reLaunch({
						url: '/pages_subPackages/login/login'
					})
				}else if (res.data.code == 10001 && res.data.code == 20004) {
					console.log(10001)
					resolve(res.data)
					uni.showToast({
						title: '请重新输入,输入有误',
						icon: 'none'
					})
				} else {
					console.log(res.msg)
					uni.hideLoading()
					// if (options.url === 'app/acUser') {
					// 	uni.showModal({
					// 		title: '提示',
					// 		content: res.data.msg,
					// 		confirmColor: '#FF577A',
					// 		showCancel: false
					// 	})
					// 	return
					// }
					if (res.data.code == 10001 && res.data.code == 20004) {
						console.log(10001)
						resolve(res.data)
						uni.showToast({
							title: '请重新输入,输入有误',
							icon: 'none'
						})
					} 
					uni.showToast({
						title: res.data.msg,
						icon: 'none'
					})
				}
			},
			fail: err => {
				console.log(13)
				uni.hideLoading()
				reject(err)
				uni.showToast({
					title: err.msg,
					icon: 'none'
				})
			}
		})
	})
}

export const getIndexInfo = options => {
	return new Promise((resolve, reject) => {
		let header = {
			"token": uni.getStorageSync('token'),
		}
		uni.request({
			header: options.header || header,
			url: BASE_URL + options.url,
			method: options.method || "GET", // 请求类型,默认为GET
			data: options.data || {}, // 请求参数,默认空对象
			success: res => {
				if (res.data.code == 200) {
					resolve(res.data)
				} else {
					uni.hideLoading()
					uni.showToast({
						title: res.data.msg,
						icon: 'none'
					})
					return
				}
			},
			fail: err => {
				uni.hideLoading()
				reject(err)
				uni.showToast({
					title: "接口请求失败,请联系管理员",
					icon: 'none'
				})

			}
		})
	})
}

 3.在main.js里面

import {httpRequest , BASE_URL} from 'util/api.js'
Vue.prototype.$httpRequest = httpRequest
Vue.prototype.$requestUrl = BASE_URL

 4.来个使用的示例

url:'请求地址',
method:'这里写请求方法(get,post)',
data:{参数}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐