uniapp对uni.request()的封装以及使用

官方文档

uni.request(OBJECT) | uni-app官网 (dcloud.net.cn)

uni.request参数

参数名 说明
url 是写api地址的
data 是用来传值的 对于 GET 方法,会将数据 转换为 query string。例如 { name: 'name', age: 18 } 转换后的结果是 name=name&age=18。 对于 POST 方法且 header['content-type']application/json 的数据,会进行 JSON 序列化。 对于 POST 方法且 header['content-type']application/x-www-form-urlencoded 的数据,会将数据转换为 query string。
header 是写请求头信息的
method 必须大写,有效值在不同平台差异说明不同。 GET POST PUT 不支持支付宝小程序 DELETE 不支持支付宝小程序、头条小程序
succes 访问接口成功之后就会调用success参数为res data Object/String/ArrayBuffer 开发者服务器返回的数据 statusCode Number 开发者服务器返回的 HTTP 状态码 header Object 开发者服务器返回的 HTTP Response Header

封装

javascript 复制代码
export const request = (url, params, method = "GET") => {
	return new Promise((resolve, reject) => {
		uni.request({
			url: "https://demo.com/api/public/v1" + url,
			method: method,
			data: params, //传入组装的参数
			header: {
				'Content-Type': 'application/json'
			},
			success: function(result) {
				if (result.statusCode !== 200) {
					console.log("发送请求成功但是开发者服务器返回的 HTTP 状态码不是200", url, params, method, result);
					const data = {
						code: "502",
						msg: "发送请求成功但是开发者服务器返回的 HTTP 状态码不是200",
						data: result
					}
					resolve(data);
				} else {
					console.log("发送请求成功", url, params, method, result);
					// 返回数据
					resolve(result.data);
				}
			},
			fail: function(error) {
				// 返回数据
				console.log("发送请求失败", url, params, method, error);
				const data = {
					code: "500",
					msg: "发送请求失败",
					data: {}
				}
				resolve(data)
			}
		})

	})
}

使用

定义

javascript 复制代码
import {
	request
} from "./request.js"

export const indexDAO = {
	getBanner() {
		return request("/home/swiperdata2",{},"GGT")
	}

}

引入

java 复制代码
<template>
	<view class="page_content">

    </view>
</template>

<script>
	import {
		indexDAO
	} from "netword/index.js"


	export default {
		components: {},
		data() {
			return {
				banner: []
			}
		},
		onLoad() {
			this.loadBanner()
		}
		methods: {
			async loadBanner() {
				const banner = await indexDAO.getBanner()
				if (banner.code == 200) {
					this.banner = banner.data
				}

			}
		}
	}
</script>


<style lang="scss" scoped>

</style>
相关推荐
走,带你去玩3 小时前
uniapp live-pusher + 腾讯云直播
前端·javascript·uni-app
SelectDB4 小时前
面向 Agent 的高并发分析:Doris vs. Snowflake vs. ClickHouse
数据库·apache·agent
2501_915921434 小时前
从需求到上架,现代 iOS 开发流程的工程化方法论
android·ios·小程序·https·uni-app·iphone·webview
oxygen-12045 小时前
uniapp 锚点跳转
uni-app
微学AI6 小时前
时序数据库的核心概念与使用指南:Apache IoTDB 深度剖析与部署实践
apache·时序数据库·iotdb
脾气有点小暴6 小时前
UniApp实现刷新当前页面
开发语言·前端·javascript·vue.js·uni-app
济南壹软网络科技有限公司6 小时前
掘金国际盲盒电商:UniApp + ThinkPHP6 构建的全球化技术基石
uni-app·开源·盲盒源码·国际盲盒
一只一只妖8 小时前
uni-app + ts请求封装最佳实践(GET/POST + 加载态 + 错误兜底)
typescript·uni-app
2501_916007471 天前
苹果手机iOS应用管理全指南与隐藏功能详解
android·ios·智能手机·小程序·uni-app·iphone·webview
2501_915106321 天前
全面理解 iOS 帧率,构建从渲染到系统行为的多工具协同流畅度分析体系
android·ios·小程序·https·uni-app·iphone·webview