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

 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.mfbz.cn/a/433953.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot中集成LiteFlow(轻量、快速、稳定可编排的组件式规则引擎)实现复杂业务解耦、动态编排、高可扩展

场景 在业务开发中,经常遇到一些串行或者并行的业务流程问题,而业务之间不必存在相关性。 使用策略和模板模式的结合可以解决这个问题,但是使用编码的方式会使得文件太多, 在业务的部分环节可以这样操作,在项目角度就无法一眼洞…

【教程】无法验证app需要互联网连接以验证是否信任开发者

摘要 本文将探讨在使用苹果App时遇到无法验证开发者的情况,以及用户可以采取的解决方案。通过检查网络连接、重新操作、验证描述文件等方式来解决无法验证开发者的问题。同时,还介绍了开发者信任设置的步骤,以及使用appuploader工具进行安装…

VMware虚拟机使用Windows共享的文件夹

虚拟机版本为 VMware Workstation 16 Pro:16.2.4;主机位Windows11;记录于2024-03-05   在个人使用时,经常会有一些数据集等大文件重复在不同实验中使用,但是不同系统中来回使用会导致占用虚拟机空间,该博文通过将主机…

蓝桥杯倒计时 38 天

整数二分模板&#xff1a;数的范围 二分的本质不是单调性&#xff0c;而是二分出能满足某种性质使得将整数分成两半。 思考&#xff1a;模板题&#xff0c;模板记熟就能做 #include<iostream> using namespace std; int n,q; const int N 1e510; int a[N]; int main…

【C#】WPF窗体在同一个位置实现不同页面切换

关键代码看主界面代码即可 创建View文件夹&#xff0c;并创建用户控件 用户控件代码 UserControl1.xaml <UserControl x:Class"WpfApp15.View.UserControl1"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://s…

从0开始学习NEON(2)

1、前言 继上一个例子&#xff0c;本次继续来学习NEON&#xff0c;本次学习NEON中向量拼接的操作&#xff0c;主要应用在图像的padding中。 https://blog.csdn.net/weixin_42108183/article/details/136440707 2、案例 2.1 案例1 在某些情况下&#xff0c;需要取在每个向量…

9.11一和零(LC474-M)

算法&#xff1a; 本题中strs 数组里的元素就是物品&#xff0c;每个物品都是一个&#xff01; 而m 和 n相当于是一个背包&#xff0c;两个维度的背包。 理解成多重背包的同学主要是把m和n混淆为物品了&#xff0c;感觉这是不同数量的物品&#xff0c;所以以为是多重背包。 …

IO之文件的打开操作和关闭

Linux下一切皆文件 一、文件的分类 学习链接&#xff1a;【精选】7种文件类型3种查看文件属性扩展名_七种文件类型-CSDN博客 二、对标准IO文件的相关操作 1、打开 &#xff08;1&#xff09;open--打开普通文件 如果需要别的权限&#xff0c;要使用 | 形式拼装 O_EXCL &…

HQYJ 2024-3-6 作业

创建一个伪终端 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <wait.h> void getstring(char *buf,int si…

【JavaWeb】Tomacat部署Web项目

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍【JavaWeb】Tomacat部署Web项目的详细使用以及部分理论知识 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主收将持续更新学习记录获&#xff0c;友友们有任何问题…

Linux系统之rename命令的基本使用

Linux系统之rename命令的基本使用 一、rename命令介绍二、raname工具版本2.1 C语言版本2.2 Perl版本 三、centos下的rename使用3.1 基本语法3.2 命令选项3.3 rename的基本使用 四、ubuntu下的rename使用4.1 基本语法4.2 命令选项4.3 rename命令的基本操作 五、rename注意事项 一…

双体系Java学习之全路线图

Java路线图 此路线图是为了我以后的Java学习指明方向。 希望大家都能在Java的路线上越走越远&#xff01;努力学习&#xff01;&#xff01;

javaSwing飞机大战

概述 1.1 项目简介 本次Java课程设计是做一个飞机大战的游戏&#xff0c;应用Swing编程&#xff0c;完成一个界面简洁流畅、游戏方式简单&#xff0c;玩起来易于上手的桌面游戏。该飞机大战项目运用的主要技术即是Swing编程中的一些窗口类库、事件监听以及贴图技术。 1.2 实…

coqui-ai/TTS 安装使用

Coqui AI的TTS是一款开源深度学习文本转语音工具&#xff0c;以高质量、多语言合成著称。它提供超过1100种语言的预训练模型库&#xff0c;能够轻松集成到各种应用中&#xff0c;并允许用户通过简单API进行个性化声音训练与微调。其技术亮点包括但不限于低资源适应性&#xff0…

golang中go build 后读取配置文件

golang打包后读取配置文件 在用go写代码的时候&#xff0c;为了好用经常使用go build 打包&#xff0c;如果我们用到了配置文件&#xff0c;就总是导致不能找到文件所在位置了出现bug&#xff0c;所以以下代码就解决了这个问题。 核心代码&#xff1a; file, err : exec.Look…

【C++ vscode 环境问题】vscode编译的时候:未定义标识符 thread mingw-w64安装支持c++11中thread

重新下载 MinGW64 https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/往下滑动 最下面 找到这个版本下载解压并且记住下载的位置搜环境 添加你的MinGW64安装的位置 路径模仿我这样写 然后应用报存修改vscode配置文件 问题解决

【JSON2WEB】08 Amis的事件和校验

【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSON2WEB前端框架搭建 【J…

Python(NetOps)前传-网络设备开局配置

背景 我们知道用Python在cli配置网络设备的前提是&#xff1a; 网络设备与Python主机网络可达网络设备已开启并完成ssh相关配置 目标 本文已华为S5720S-52P-LI-AC交换机为例&#xff0c;完成&#xff1a; 完成网络设备开局配置&#xff1b;用Python脚本验证ssh登录 配置 …

整流二极管:电路图、符号、功能与其它二极管的区别

整流二极管是 一种用于将交流电转换为直流电的半导体器件。二极管最重要的特性是单向导电性。在电路中&#xff0c;电流只能从二极管的正极流入&#xff0c;从负极流出。通常&#xff0c;它包含一个带有正极和负极端子的 PN 结。其结构如下图所示。 P区的载流子是空穴&#xf…

【Mysql】执行sql语句后,mysql都做了什么?

查数据大家都经常干&#xff0c;但是你知道从执行sql到看到结果&#xff0c;mysql背后都做了什么事情吗&#xff1f; 一、mysql的架构 client/server 这种客户端到服务端的架构&#xff0c;大家一定都很熟悉&#xff0c;其实 mysql 也与之类似。 可以有多个客户端与服务端连…
最新文章