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>
相关推荐
Par@ish5 小时前
【网络安全】Apache StreamPipes 严重漏洞使攻击者可夺取管理员控制权
安全·web安全·apache
oMcLin10 小时前
Ubuntu 22.04 配置 Apache 反向代理时无法访问后端应用:Nginx 与 Apache 配置冲突排查
nginx·ubuntu·apache
小恒恒1 天前
2025 Vibe Coding 有感
前端·uni-app·trae
一颗小青松1 天前
uniapp使用uni-im
uni-app
2501_916007471 天前
iPhone APP 性能测试怎么做,除了Instruments还有什么工具?
android·ios·小程序·https·uni-app·iphone·webview
2501_915106321 天前
Windows 环境下有哪些可用的 iOS 上架工具, iOS 上架工具的使用方式
android·ios·小程序·https·uni-app·iphone·webview
一颗小青松1 天前
uniapp vue3中app端使用腾讯云点播上传
uni-app·云计算·腾讯云
xiaoliuliu123451 天前
Apache JMeter 2.9 简单上手教程(附下载包)
jmeter·apache
玄尺_0071 天前
uniapp h5端使浏览器弹出下载框
前端·javascript·uni-app
2501_915106321 天前
iOS 抓包工具有哪些?不同类型的抓包工具可以做什么
android·ios·小程序·https·uni-app·iphone·webview