002Axios网络请求的封装

news/2025/3/12 19:00:28/文章来源:https://www.cnblogs.com/zhangxiaoguo/p/18766954

在日常应用过程中,一个项目中的网络请求会很多,此时一般采取的方案是将网络请求封装起来

创建项目npm create vite@latest

 起个名字axiospro02

 选择

 选择

 进入文件夹

 

 

 

打开看一下没问题

 这个样式删掉

 这句话删掉

 这页这样写

 这页这样写

 

1、安装 axios:npm install axios;2、安装 querystring: npm install querystring。

终止项目运行安装axios:npm install axios

 安装 querystring: npm install querystring

2、创建 src/utils/request.js

新建文件夹和文件

 

 案例源码如下:

 

import axios from 'axios'
import querystring from 'querystring'
//参考文档:https://www.kancloud.cn/yunye/axios/234845/
const errorHandle=(status,info)=>{
switch(status){
case 400:
console("语义有误")
break;
case 401:
console("服务器认证失败")
break;
case 403:
console("服务器拒绝访问")
break;

case 404:
console("地址有误")
break;
case 500:
console("服务器报出异常")
break;
case 502:
console("服务器报无响应")
break;
default:
console.log(info);
}
}

const instance=axios.create({
//网络请求的公共配置
timeout:5000
})

//拦截器最常用的

//发送数据之前
instance.interceptors.request.use(
config=>{
if(config.method=="post"){
config.data=querystring.stringify(config.data)
}

//config包含着网络请求的所有信息

return config;
},
error=>{

return Promise.reject(error)
}
)

//获取数据之前
instance.interceptors.response.use(
response=>{
return response.status==200?Promise.resolve(response):Promise.reject(response)
},
error=>{
const {response}=error;
errorHandle(response.status,response.info)
}
)

export default instance;

 

自定义配置的一个axios源码

删掉第二行

import { error } from "console";

, 保存之后

 

 3、创建 src/api/path.js src/api/index.js

// src/api/path.js
const base={
baseUrl:"http://localhost:8080",
jtr:"/hello"
}

export default base;

 


// src/api/index.js
import axios from "axios";
import path from './path'

const api={
getHello(){
return axios.get(path.baseUrl+path.jtr)
}
}
export default api;

 

 

新建文件夹及文件

 

path.js路径,集合路径

 index.js 请求方法,具体方法,调用方法

 

 

4、组件调用:

<script setup>
import { onMounted ,reactive} from 'vue';
import api from '../api/index'

let emp=reactive({
id:0,
name:"",
money:0.0,
address:""
})
onMounted(()=>{
api.getHello().then(res=>{
emp.id=res.data.id
emp.name=res.data.name
emp.money=res.data.money
emp.address=res.data.address
console.log(res.data)
})
})
</script>

<template>
<p>helloworld</p>
<p>{{ emp.id }}--{{ emp.name }}--{{ emp.money }}--{{ emp.address }}</p>
</template>

 

这里这样写

 

运行项目

 查看项目

 

可以看到调取到值了

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/897812.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PHP攻防】带有 LFI 和 SSH 日志中毒的 RCE

免责声明 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用…

【最佳方案】RAG 技术深度剖析及 MaxKB 在企业 AI 落地中的应用策略

RAG 已经成为 LLM 大语言模型在企业落地的最佳方案,其中主要是因为 RAG 能够解决幻觉问题、时效性问题以及数据安全问题。解决幻觉问题:LLM 文本生成的底层原理是基于概率的 token by token 的形式,因此会不可避免地产生“一本正经的胡说八道"的情况。比如:你说,”博…

开源中国完成数亿元 C 轮融资:Gitee 加速智能化研发效能革新

开源中国近日宣布完成数亿元C轮融资,由北京信息产业发展投资基金领投,深报一本及上河动量跟投。本轮资金将用于加速Gitee在AI DevSecOps领域的创新,构建智能化研发效能解决方案,提升企业级用户的研发效率与安全性。目前,Gitee已服务36万企业用户,在金融、能源、政府等核心…

【ArcGIS】从数据导入到开始标注

1.点击 新建工程下面的地图2.找一个合适的位置新建项目3.右键地图,点击添加数据找到下载好的数据后点确认4.打开后图像会自动和地图对准,不用管5.下载群里的中印.ecs,在桌面找一个文件夹保存(不然可能在软件里找不到) 点击这里的浏览至现有方案,找到ecs文件会出现下面这五…

Windows 提权-内核利用_2

本文通过 Google 翻译 Kernel Exploits Part 2 – Windows Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 新版 Windows 系统内核利用 2 搜寻内核漏洞2.1 枚举内核利用 - 手动 2.2 枚举内核利用 - 自动…

90%的开发者都忽略的文本向量化技巧!

1 啥是文本张量表示? 将一段文本使用张量表示,一般将词汇表示成向量,称作词向量,再由各个词向量按序组成矩阵形成文本表示,如: ["人生", "该", "如何", "起头"]==># 每个词对应矩阵中的一个向量 [[1.32, 4,32, 0,32, 5.2],[3…

北京大学!121页,讲透DeepSeek的私有化部署!(免费下载)

北京大学肖睿团队发布的《DeepSeek私有化部署技术白皮书》,系统揭示了国产大模型从实验室走向产业落地的完整路径。这份文档的核心价值,在于打破“私有化部署=高性能硬件堆砌”的固有认知,提出一套覆盖个人电脑、边缘设备到企业级集群的弹性部署体系。北京大学肖睿团队发布的…

网易伏羲人工智能实验室技术创新再突破!前馈捏脸等3篇论文入选CVPR 2025

近日,全球计算机视觉和模式识别领域的顶级会议CVPR (Conference on Computer Vision and Pattern Recognition)公布论文接收结果:网易伏羲人工智能实验室凭借其在前馈捏脸等领域的创新研究,成功入选3篇论文。CVPR 是计算机视觉和模式识别领域最顶级的学术会议之一,至今已…

html的基础操作2

1、表格标签(table语句) (1)认识表中的一些常用单词 border 边距 align 格式 ‘ center’ 对齐 cellspacing 单元格与单元格的距离 cellpadding 单元格与内容的距离 wedth 宽度 height 高度 tr 表示:行 th 表示:表头 td :表示列 -表格的案例--代码- <!DOCTYPE…

MySQL 去除 \n 斜杠n,\\n,\\\\n,mysql去除换行符

MySQL 去除 \n 斜杠n,\\n,\\\\n,mysql去除换行符 使用navicat查询数据可以看到字符\n,(这里的\n并不是换行符,而是字符,换行符是不可以看到的) 在查询数据的时候需要转义才能查询到(查询时斜杠的数量是实际数量的4倍,不然会查询异常)-- 错误写法 SELECT field FROM…

day:19 html实战3

一、表单标签 一、表单单词介绍: 表单标签格式:form action:开始网址 method:get和post等等 表单标签:主要用来收集用户输入信息如:登入、注册、搜索商品等 用户名格式:text (明文) 密码格式:password (密文) 性别:radio 性别格式 性别是单选,单选类型是radio,注…