微信小程序封装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

相关文章

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 方法形参接收参数 这种方式一般适用参数比较少的情况,并且前后端参数名称必须

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。