uniapp封装统一请求(get和post)

news2024/11/20 1:25:02

 uniapp封装请求

request.js文件

import Vue from 'vue'
// 全局配置
import settings from './settings.js'
function computedBaseUrl(url) {
	// console.log(url);
	return (url.indexOf('http') === -1 ? settings.baseUrl : '') + url
}

// 发送请求
export default (options) => {
	const {
		url = '',
		method = 'GET',
		data = {},
		header = {}
	} = options
	return new Promise((resolve, reject) => {
			try {
				if (options.headers.isToken == true) {
					uni.request({
						url: computedBaseUrl(url),
						method,
						data,
						header: {
							// "Content-Type": "multipart/form-data",
							// "Token": uni.getStorageSync('token'),
							"Authorization": uni.getStorageSync('token'),
							// "Authorization" : 'Bearer ' + JSON.parse(uni.getStorageSync('token')), // 让每个请求携带自定义token 请根据实际情况自行修改
							...header
						},
						
						success(e) {
							// console.log(e.data,'success');
							if (e.data.code == 401) {
								uni.reLaunch({url: '/pages/login/login',});
							}
							resolve(e.data)
						},
						fail(e) {
							// console.log(e,'fail');
							if (e && e.data && e.data.code == 401) {
								uni.reLaunch({url: '/pages/login/login',});
							}
							reject({...e,msg:e.errMsg||e.msg||'未知错误'})
						}
					})
				}else{
					uni.request({
						url: computedBaseUrl(url),
						method,
						data,
						header: {
							// "Content-Type": "multipart/form-data",
							// "Token": uni.getStorageSync('token'),
							// "Authorization": uni.getStorageSync('token'),
							// "Authorization" : 'Bearer ' + JSON.parse(uni.getStorageSync('token')), // 让每个请求携带自定义token 请根据实际情况自行修改
							...header
						},
						success(e) {
							if (e.data.code == 401) {
								uni.reLaunch({url: '/pages/login/index',});
							}
							resolve(e.data)
						},
						fail(e) {
							if (e.data.code == 401) {
								uni.reLaunch({url: '/pages/login/index',});
							}
							reject({...e,msg:e.errMsg||e.msg||'未知错误'})
						}
					})
				}
				
			} catch (err) {
				reject({...err,msg:err.errMsg||err.msg||'未知错误'})
			}
		}).then(data => data)
		.catch(err => [err, null])
}

settings.js文件

export default {
	baseUrl:'http://127.0.0.1',
	uploadUrl:''
}

注意事项

setting中设置地址,方便进行统一管理,

settinngs.js和request.js文件是同级,放在一个文件夹中即可

使用方式

创建一个api文件夹

import request from "@/utils/request.js"

// 接口模板
export function getLogin(data = {}) {
	return request({
		url: '/api/wx/wxLogin',
		method: 'post',
		data,
		headers: {
			isToken: false
		},
	})
}

注意小技巧

上面的headers中的isToken,方便对接口进行管理,因为微信小程序强制登录是不能通过审核的,所以有时候要后端放开接口,不需要token,也可哟访问,提高审核的通过率,这边就很方便管理!

结束语

欢迎指教

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1514346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一.java介绍和idea基础使用

java技术体系 Java技术体系说明Java SE(Java standard Edition):标准版Java技术的核心和基础Java EE(Java Enterprise Edition):企业版企业级应用开发的一套解决方案Java ME(Java Micro Edition):小型版针对移动设备应用的解决方案(认可少,主要是安卓和…

基于Vue移动端电影票务服务APP设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 Vue框架 3 1.2 数据库MongoDB 3 1.3 Axios请求 3 1.4 H5、CSS3和JavaScript 4 1.5 本章小结 4 2 系统分析 5 2.1 功能需求 5 2.2 用例分析 5 2.3 用户功能 6 2.4本章小结 6 3 基于Vue电影票务服务APP设计 7 3.1 页面设计 …

Java_8 移除元素

移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

微信小程序之表单组件

1、button 常用的属性: 属性类型默认值必填说明sizestringdefault否按钮的大小 合法值说明default默认大小mini小尺寸typestringdefault否按钮的样式类型 合法值说明primary绿色default白色warn红色plainbooleanfalse否按钮是否镂空,背景色透明disable…

Transformer原理

在《机器学习综述》中大致罗列人工智能常见算法,近些年深度学习发展快速,其中Transformer为甚,其英文的意思是变形金刚,对的就是我们看电影变形金刚的意思。Transformer是大语言模型的基础,比如现在常见的GPT、Bert、P…

详解Python中%r和%s的区别及用法

首先看下面的定义: %r用rper()方法处理对象 %s用str()方法处理对象 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式(如果没有等价的语法,则会发生SyntaxError 异常) 某对象没有适于人…

数据库增删改查以及联合查询——数据库——day1

今天学习了数据库的知识 首先数据库分为关系型数据库和非关系型数据库 关系型数据库:Mysql OracleSqlServerSqlite 非关系型数据库:RedisNoSQL我们首先来看一下数组、链表、文件、数据库的区别 数组、链表: 内存存放数据的方式(代码运行结束、关机数据丢失) …

JS数组相关知识

获取数组的最大值/最小值&#xff1a; let arrary [2,5,4] let max arrary[0] for(let i 0;i<arrary.length;i){if(arrary[i]>max){max arrary[i]} }console.log(max);//查询数组最小值let arr [2,21,34,23,45] let min arr[0] for(let i 0;i<arr.length;i){if…

“我快无聊死了”用英语怎么说?柯桥英语口语学习,成人零基础学外语

每日一句 Im bored to death. 我快无聊死了。 单词解析&#xff1a; bored / bɔːd / adj.无聊的&#xff0c;厌倦的 bored to d15857575376eath&#xff1a;指非常无聊或厌烦&#xff0c;达到了极点的程度。 "bored" 和 "boring" 都与无聊相关&#…

蓝桥杯练习系统(算法训练)ALGO-980 斐波那契串

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;10.0s Java时间限制&#xff1a;30.0s Python时间限制&#xff1a;50.0s 问题描述 斐波那契串由下列规则生成&#xff1a;   F[0] "0";   F[1] "1";   F[n] F[n-1] F[n-2]…

AI人工智能改变项目管理及控制的5种方式,最后一个你认同吗?

前言 斯蒂芬霍金说&#xff1a;“AI is likely to be either the best or the worst thing to happen to humanity. 人工智能可能是发生在人类身上的最好或最坏的事情”。根据Gartner的说法&#xff0c;它将是前者。它预测到2020年&#xff0c;人工智能将减少1万个就业机会&am…

软件设计师15--进程资源图

软件设计师15--进程资源图 考点1&#xff1a;进程资源图例题&#xff1a; 考点1&#xff1a;进程资源图 例题&#xff1a; 1、在如下所示的进程资源图中&#xff0c;D&#xff09;。 A、P1、P2、P3都是非阻塞节点&#xff0c;该图可以化简&#xff0c;所以是非死锁的 B、P1、…

Linux:1_常见指令以及权限理解(上)

常见指令以及权限理解 一.补充知识 为方便初学者更好的理解Linux系统,这部分将对比windows系统补充一部分必要知识1 2 3 4 5 6 二.补充指令 1. 重新认识指令: 指令本质都是程序 —指令、程序、可执行程序都是一回事(都是文件内容属性)指令就是程序 … 安装和卸载是在把可…

【Axure高保真原型】下拉列表切换图表

今天和大家分享通过下拉列表动态切换统计图表的原型模板&#xff0c;我们可以通过下拉列表选择要显示的图表&#xff0c;包括柱状图、条形图、饼图、环形图、折线图、曲线图、面积图、阶梯图、雷达图&#xff1b;而且图表数据可以在左侧表格中动态维护&#xff0c;包括增加修改…

深入理解Vue3中利用mitt:实现轻量级事件监听与触发

深入理解Vue3中利用mitt&#xff1a;实现轻量级事件监听与触发 摘要&#xff1a;本文将介绍如何在Vue3中利用mitt库实现轻量级的事件监听与触发。我们将详细介绍mitt库的特性和使用方法&#xff0c;并通过实际示例展示如何在Vue3组件中应用mitt。 一、引言 在前端开发中&…

LeetCode24.两两交换链表节点

24.两两交换链表中的节点 这道题&#xff0c;重点在于理清楚各个指针之间的关系。 链表的题一定要注意断链和连接的顺序&#xff0c;有时候需要申请新的节点来保存某个节点&#xff0c;防止断链 24。题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交…

Selenium Web自动化测试——基于unittest框架的PO设计模式

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

回归测试,有什么高效的测试方法?

什么是回归测试&#xff1f; 回归测试&#xff08;Regression testing&#xff09; 指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上&#xff0c;软件产生新版本&#xff0c;都需要进行回归测试&#xff0c;验证以前发现和修复的错误是否在新软件版本上再次出现…

虚拟机Centos8登陆之后又弹回到登陆界面

今天开机发行&#xff0c;虚拟机Centos登陆之后又弹回到登陆界面&#xff0c;在网上一通搜索之后&#xff0c;发现Centos7正确输入账号密码后&#xff0c;循环进入输入账号密码界面&#xff08;情况一设置错误PATH&#xff09;&#xff0c;以及进入单用户模式_centos一直卡在用…

120.PyQt5_QPainter_图形绘制控件

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…