微信小程序封装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程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm