当前位置: 首页 > news >正文

uniapp 请求封装

 1.创建request.js文件

export default {config: {baseUrl: "http://192.168.1.1:0000", // 示例header: {'Content-Type': 'application/json;charset=UTF-8'// 'Content-Type': 'application/x-www-form-urlencoded', },data: {},method: "GET",dataType: "json",responseType: "text",success() {},fail() {},complete() {}},// 请求拦截器interceptor: {request: null,response: null},request(options) {if (!options) {options = {}}options.baseUrl = options.baseUrl || this.config.baseUrloptions.dataType = options.dataType || this.config.dataTypeoptions.url = options.baseUrl + options.urloptions.data = options.data || {}options.method = options.method || this.config.method// 基于 Promise 的网络请求return new Promise((resolve, reject) => {uni.showLoading()let _config = nulloptions.complete = (response) => {uni.hideLoading()// console.log(response, 'response.data',this);let {code,info} = response.dataif (info == "登录信息过期") {setTimeout(() => {uni.reLaunch({url: '/pages/login'})}, 1500)}if (code === 400) {uni.showToast({title: info,icon: "none",position: "center",duration: 2000})// reject(response)} else if (code === 200) {uni.showToast({title: info,icon: "none",position: "center",duration: 2000})resolve(response.data)} else if (code === 500) {uni.showToast({title: info,icon: "none",position: "center",duration: 2000})resolve(response.data)} else {resolve(response.data)}}_config = Object.assign({}, this.config, options)_config.requestId = new Date().getTime()if (this.interceptor.request) {this.interceptor.request(_config)}uni.request(_config);});},// url 为请求路径 data 为需要传递的值 options 进行封装// get请求get(url, data, options) {if (!options) {options = {}}options.url = urloptions.data = dataoptions.method = 'GET'return this.request(options)},// post请求post(url, data, options) {if (!options) {options = {}}options.url = urloptions.data = dataoptions.method = 'POST'return this.request(options)},// put请求put(url, data, options) {if (!options) {options = {}}options.url = urloptions.data = dataoptions.method = 'PUT'return this.request(options)},
}

2.在main.js中引入

import api from './request.js'Vue.prototype.$http = api

3.页面请求接口

async queryName() {const data = {name:''}const res = await this.$http.post("接口地址", data)console.log(res, 'res');},

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JavaScript高级程序设计(第四版)--学习记录之代理与反射
  • 完美解决ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
  • Perl语言入门到高级学习
  • 【教程】Github Page 添加自定义域名
  • SQL Server和Oracle数据库的实时同步
  • python通过pyinstaller库进行打包,运行时提示缺少ODBC驱动
  • STM32智能仓库管理系统教程
  • 原创作品—数据可视化大屏
  • pytest系列——pytest_runtest_makereport钩子函数获取测试用例执行结果
  • TIA博途与威纶通触摸屏无实物仿真调试的具体方法示例
  • 用Vue3和Plotly.js绘制交互式3D散点图
  • 新浪API系列:支付API打造无缝支付体验,畅享便利生活(3)
  • python库 - modelscope
  • Java面试八股之MySQL索引B+树、全文索引、哈希索引
  • Springboot项目实训--day2
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • golang中接口赋值与方法集
  • Java 网络编程(2):UDP 的使用
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JDK 6和JDK 7中的substring()方法
  • mongo索引构建
  • Mybatis初体验
  • Python 基础起步 (十) 什么叫函数?
  • text-decoration与color属性
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 多线程事务回滚
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 聚类分析——Kmeans
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前端面试题总结
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 算法---两个栈实现一个队列
  • 追踪解析 FutureTask 源码
  • ​力扣解法汇总946-验证栈序列
  • ​字​节​一​面​
  • ## 基础知识
  • ######## golang各章节终篇索引 ########
  • (C#)一个最简单的链表类
  • (c语言)strcpy函数用法
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (七)理解angular中的module和injector,即依赖注入
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (万字长文)Spring的核心知识尽揽其中
  • (转) Face-Resources
  • (转)四层和七层负载均衡的区别
  • (转载)利用webkit抓取动态网页和链接
  • .net 7 上传文件踩坑
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET Framework杂记
  • .NET MVC第三章、三种传值方式
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • @selector(..)警告提示
  • @test注解_Spring 自定义注解你了解过吗?