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

vue网络请求

post网络请求


import axios from 'axios'
import {ElMessage, ElLoading} from "element-plus"
import { nextTick } from "vue"
import JSONbig from 'json-bigint'
import { userToken } from "@/constants/Constant.js";const defaultConfig = {baseURL: import.meta.env.VITE_BASE_URL,timeout: 2 * 60 * 1000,headers: {Accept: "application/json","Content-Type": "application/json"},transitional: {forcedJSONParsing: false},transformResponse: (data) => {try {return JSONbig.parse(data)} catch (err) {return data}}
};const instance = axios.create({...defaultConfig,
})instance.interceptors.request.use((config) => {// 实时动态设置登陆用户tokenconfig.headers.Authorization = userToken();return config;
});export async function postReq(path, param, config, success, fail) {return await instance.post(path,param || {},config,).then(success, fail)
}/*** * @param {*} callback 只返回成功后的数据*/
export function basePostReq(path, param, callback) {sendPostReq(path, param, null, true, true, true, callback)
}/*** * @param {*} isShowLoading 是否显示loading* @param {*} isShowError 是否显示报错* @param {*} isOnlyData 是否只返回有用的数据* @param {*} callback 只返回成功后的数据*/
export function sendPostReq(path, param, config, isShowLoading, isShowError, isOnlyData, callback) {var loading = nullif (isShowLoading) {loading = ElLoading.service({lock: true,text: '请稍等...',  background: 'rgba(0, 0, 0, 0.7)'})}postReq(path, param, config, (res)=> {if (loading) {nextTick(() => {loading.close()})}if (res.data instanceof Blob) {if (res.data.type == 'application/json') {const reader = new FileReader()reader.readAsText(res.data, 'utf-8')reader.onload = function() {try {const blobData = JSON.parse(reader.result)if (!blobData.code || blobData.code != 200) {if (isShowError) {ElMessage({showClose: true,message: blobData.message || '请求失败',duration: 0,type: 'error'})}return}if (isOnlyData && blobData) {if (callback) {callback(blobData.data)}} else {if (callback) {callback(blobData)}}} catch (e) {ElMessage({showClose: true,message: "json解析失败:" + e.toString(),duration: 0,type: 'error'})}}} else {if (callback) {callback(res.data)}}return}if (!res.data.code || res.data.code != 200) {if (isShowError) {ElMessage({showClose: true,message: res.data.message || '请求失败',duration: 0,type: 'error'})}return}if (isOnlyData && res.data) {if (callback) {callback(res.data.data)}} else {if (callback) {callback(res.data)}}}, (err)=> {if (loading) {nextTick(() => {loading.close()})}ElMessage({showClose: true,message: err.code +', ' + err.message,duration: 0,type: 'error'})})
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • <设计模式> 单例模式
  • 力扣94题(java语言)
  • wpf中轮询显示图片
  • Jacoco 单元测试配置
  • 设计模式14-享元模式
  • 江科大/江协科技 STM32学习笔记P13
  • IP地址在后端怎么存才好?
  • Java项目中整合多个pdf合并为一个pdf
  • 【Java版数据结构】初识泛型
  • OpenKylin 系统中禁用 Win 键
  • html+css前端作业 王者荣耀官网1个页面(带报告)
  • Java面试八股之Spring框架的核心模块
  • Web动画(lottie篇)
  • Unity3D结合AI教育大模型 开发AI教师 AI外教 AI英语教师案例
  • 昇思25天学习打卡营第23天|LSTM+CRF序列标注
  • bearychat的java client
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • JDK9: 集成 Jshell 和 Maven 项目.
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • 机器学习学习笔记一
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 离散点最小(凸)包围边界查找
  • 排序(1):冒泡排序
  • 实习面试笔记
  • 协程
  • 延迟脚本的方式
  • Semaphore
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #QT(一种朴素的计算器实现方法)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (4)事件处理——(7)简单事件(Simple events)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (南京观海微电子)——示波器使用介绍
  • (三)uboot源码分析
  • (十)Flink Table API 和 SQL 基本概念
  • (译)2019年前端性能优化清单 — 下篇
  • (原)Matlab的svmtrain和svmclassify
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Linux整合apache和tomcat构建Web服务器
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Core中的去虚
  • .net 发送邮件
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net8.0与halcon编程环境构建
  • .net反编译的九款神器
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @Bean注解详解
  • [2024-06]-[大模型]-[Ollama]- WebUI