当前位置: 首页 > 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'})})
}
http://www.lryc.cn/news/406788.html

相关文章:

  • 几何光学基本原理——费马原理和射线方程
  • OpenCV车牌识别技术详解
  • 解决llama_index中使用Ollama出现timed out 问题
  • Python爬虫技术 第14节 HTML结构解析
  • 【vue3|第18期】Vue-Router路由的三种传参方式
  • ElasticSearch(六)— 全文检索
  • Oracle核心进程详解并kill验证
  • 【BUG】已解决:SyntaxError:positional argument follows keyword argument
  • 怎样在 Nginx 中配置基于请求客户端 Wi-Fi 连接状态的访问控制?
  • 逆向案例二十九——某品威客登录,请求头参数加密,简单webpack
  • 河道高效治理新策略:视频AI智能监控如何助力河污防治
  • [React]如何提高大数据量场景下的Table性能?
  • 基于Vision Transformer的mini_ImageNet图片分类实战
  • JS中map()使用记录
  • JavaWeb学习——请求响应、分层解耦
  • Vue中!.和?.是什么意思
  • 秋招突击——7/22——复习{堆——前K个高频元素}——新作{回溯——单次搜索、分割回文串。链表——环形链表II,合并两个有序链表}
  • android13禁用某个usb设备
  • tmux相关命令
  • 初创小程序公司怎么选服务器合作商
  • 基于微信小程序+SpringBoot+Vue的自习室选座与门禁系统(带1w+文档)
  • 【Linux】进程IO|重定向|缓冲区|dup2|dup|用户级缓冲区|模拟缓冲区
  • bug bug bug
  • 医疗器械上市欧美,需要什么样的网络安全相关申报文件?
  • 【UbuntuDebian安装Nginx】在线安装Nginx
  • Jacoco 单元测试配置
  • App Instance 架构示例
  • 【论文速读】| MoRSE:利用检索增强生成技术填补网络安全专业知识的空白
  • pip install albumentations安装下载超级细水管
  • 驱动开发系列07 - 驱动程序如何分配内存