微信小程序封装wx.request请求以及携带token

2024-04-09 19:18

本文主要是介绍微信小程序封装wx.request请求以及携带token,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       首先在pages中新建一个api的文件夹,对ajax请求统一管理,文件夹中request.js完成对wx.request的封装,在index.js中完成接口管理,目录以下图:ajax

    在request.js中对wx.request进行封装,代码以下:json

var tokenKey = "access-token";
var serverUrl =  "http://124.204.51.174:8080/gcs"; 
// 例外不用token的地址
var exceptionAddrArr = [  '/user/login',];//请求头处理函数
function CreateHeader(url, type) {let header = {}if (type == 'POST_PARAMS'){header = {'content-type': 'application/x-www-form-urlencoded'}}else{header = {'content-type': 'application/json'}}if (exceptionAddrArr.indexOf(url) == -1) {  //排除请求的地址不须要token的地址let token = wx.getStorageSync(tokenKey);// header.Authorization = token;header['access-token'] = token;}return header;
}
//post请求,数据在body中
function postRequest(url,data){let header = CreateHeader(url,'POST');console.log(header,'header')return new Promise((resolve, reject) => {wx.request({url: serverUrl + url,data: data,header: header,method: 'POST',success: (res => {if (res.statusCode === 200) {//200: 服务端业务处理正常结束resolve(res)} else {reject(res)}}),fail: (res => {reject(res)})})})
}
//post请求,数据按照query方式传给后端
function postParamsRequest(url, data) {let header = CreateHeader(url,'POST_PARAMS');let useurl = url;console.log(useurl);return new Promise((resolve, reject) => {wx.request({url: serverUrl + useurl,data: data,header: header ,method: 'POST',success: (res => {console.log(res, '1212')if (res.statusCode === 200) {//200: 服务端业务处理正常结束resolve(res)} else {reject(res)}}),fail: (res => {reject(res)})})})
}
//get 请求
function getRequest(url, data) {let header = CreateHeader(url, 'GET');return new Promise((resolve, reject) => {wx.request({url: serverUrl + url,data: data,header: header,method: 'GET',success: (res => {if (res.statusCode === 200) {//200: 服务端业务处理正常结束resolve(res)} else {reject(res)}}),fail: (res => {reject(res)})})})
}
//put请求
function putRequest(url, data) {let header = CreateHeader(url, 'PUT');return new Promise((resolve, reject) => {wx.request({url: serverUrl + url,data: data,header: header,method: 'PUT',success: (res => {if (res.statusCode === 200) {//200: 服务端业务处理正常结束resolve(res)} else {reject(res)}}),fail: (res => {reject(res)})})})
}
//delete请求
function deleteRequest(url, data) {let header = CreateHeader(url, 'DELETE');return new Promise((resolve, reject) => {wx.request({url: serverUrl + url,data: data,header: header,method: 'DELETE',success: (res => {if (res.statusCode === 200) {//200: 服务端业务处理正常结束resolve(res)} else {reject(res)}}),fail: (res => { reject(res) })})})
}
module.exports.getRequest = getRequest;
module.exports.postRequest = postRequest;
module.exports.postParamsRequest = postParamsRequest;
module.exports.putRequest = putRequest;
module.exports.deleteRequest = deleteRequest;

 在index.js中具体使用小程序

import { postRequest, postParamsRequest} from './requst.js'
const base = '';
// 登陆接口
export const requst_post_login = data => postParamsRequest(`/user/login`, data);
//扫码接口
export const requst_post_addInfo = data => postRequest(`/receive/add`, data);

在页面中使用,如登陆页面的login.js后端

import { requst_post_login} from '../api/index.js'
formSubmit(e){if (!e.detail.value.loginName || !e.detail.value.password){ wx.showToast({title: '请输入用户名或密码',icon: 'none',})setTimeout(function () {wx.hideToast()}, 2000)return}requst_post_login(e.detail.value).then(res=>{res = res.data;if(res.code == 1){wx.setStorage({key: 'access-token',data: res.data.token,})wx.showToast({title: '登陆成功',icon: 'success',})setTimeout(function () {wx.hideToast()}, 2000)wx.navigateTo({url: '../home/home'})}}).catch(err=>{console.log('ajax_err',err)})
},

 然后再其他页面进行引用

这篇关于微信小程序封装wx.request请求以及携带token的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888998

相关文章

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

SpringBoot项目引入token设置方式

《SpringBoot项目引入token设置方式》本文详细介绍了JWT(JSONWebToken)的基本概念、结构、应用场景以及工作原理,通过动手实践,展示了如何在SpringBoot项目中实现JWT... 目录一. 先了解熟悉JWT(jsON Web Token)1. JSON Web Token是什么鬼

SpringBoot中Get请求和POST请求接收参数示例详解

《SpringBoot中Get请求和POST请求接收参数示例详解》文章详细介绍了SpringBoot中Get请求和POST请求的参数接收方式,包括方法形参接收参数、实体类接收参数、HttpServle... 目录1、Get请求1.1 方法形参接收参数 这种方式一般适用参数比较少的情况,并且前后端参数名称必须