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>
相关推荐
Kina_C18 分钟前
Apache HTTP Server 安装、配置与高级功能详解
linux·http·apache
2501_9160074734 分钟前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
java_logo4 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
2501_916007471 天前
深入理解HTTPS对称与非对称加密机制及Charles抓包实践
网络协议·http·ios·小程序·https·uni-app·iphone
Zhu7581 天前
在k8s环境部署Apache Superset最新版
容器·kubernetes·apache
小徐_23331 天前
AI 写 wot-ui 总在猜 API?我们把 Skills、MCP 和 CLI 都配好了
前端·uni-app·ai编程
Zhu7581 天前
在k8s环境部署Apache zookeeper3.9.5,高可用,多pod
容器·kubernetes·apache
Liu.7741 天前
uni-app 组件 uni-easyinput 常见 Bug 及解决方案
uni-app·bug
小徐_23332 天前
uni-app 项目别再从零搭了!3 个 Wot UI 起手模板怎么选?
前端·uni-app
蜡台2 天前
uniapp pdf文件预览组件
pdf·uni-app·合同·pdfh5