一、介绍

Axios 是一个基于 promise 的 HTTP 库,简单的讲就是可以发送get、post等请求。

二、安装

npm install axios --save

二、axios不同请求方式

  • axios(config)

这是 Axios 的核心方法,用于发送自定义配置的 HTTP 请求。通过传入一个包含请求配置的对象,可以灵活设置请求的各种参数。

axios({method: 'get',url: 'http://api.example.com/data',params: { id: 123 }
}).then(response => {console.log(response.data);
});
  • axios.request(config)

与 axios(config) 功能完全相同,是发送请求的通用方法。可以理解为 axios(config) 的别名。

axios.request({method: 'post',url: 'http://api.example.com/submit',data: { name: 'John' }
});
  • axios.get(url[, config])

发送 GET 请求的便捷方法。用于从服务器获取数据。

====》url : 请求的 URL 地址

====》config : 可选的配置对象

axios.get('http://api.example.com/users', {params: { page: 1, limit: 10 }
});
  • axios.delete(url[, config])

发送 DELETE 请求的便捷方法。通常用于删除服务器上的资源。

axios.delete('http://api.example.com/users/123');
  • axios.head(url[, config])

发送 HEAD 请求的便捷方法。只请求资源的头部信息,不返回主体内容。

axios.head('http://api.example.com/document');

  • axios.post(url[, data[, config]])

发送 POST 请求的便捷方法。用于向服务器提交数据。

====》url : 请求的 URL 地址

====》data : 要发送的数据

====》config : 可选的配置对象

axios.post('http://api.example.com/users', {name: 'Alice',email: 'alice@example.com'
});

  • axios.put(url[, data[, config]])

发送 PUT 请求的便捷方法。通常用于更新服务器上的资源(替换整个资源)。

axios.put('http://api.example.com/users/123', {name: 'Updated Name'
});

总结

  • 所有这些方法都返回一个 Promise 对象,可以使用 .then() 和 .catch() 处理响应和错误。

  • axios(config) 和 axios.request(config) 是通用方法,可以通过配置 method 属性支持各种 HTTP 请求类型。

  • 其他方法(如 get 、 post 等)是特定 HTTP 方法的便捷封装,使代码更简洁易读。

  • 在实际开发中,通常会根据具体的请求类型选择对应的便捷方法,而不是总是使用通用方法。

三、简单使用

在页面中,先导入axios

在created中

测试:页面启动查看控制台是否有返回值

Bug

这个是因为跨域问题导致,在后端controller加上@CrossOrigin

AxiosError {message: 'Network Error', name: 'AxiosError', code: 'ERR_NETWORK', config: {…}, request: XMLHttpRequest, …}
code: "ERR_NETWORK"
config: {transitional: {…}, adapter: Array(3), transformRequest: Array(1), transformResponse: Array(1), timeout: 0, …}
message: "Network Error"
name: "AxiosError"
request: XMLHttpRequest {onreadystatechange: null, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …}
stack: "AxiosError: Network Error\n    at XMLHttpRequest.handleError (webpack-internal:///./node_modules/axios/lib/adapters/xhr.js:116:14)\n    at Axios.request (webpack-internal:///./node_modules/axios/lib/core/Axios.js:58:41)"
[[Prototype]]

四、二次封装

1、为什么需要封装??

方便管理和操作和维护

(1)请求的url地址的统一管理

(2)某些接口需要传递headers请求头,可以进行统一管理

2、封装步骤

2.1 在src中创建utils文件夹,在utils中新建request.js文件

2.2 在request.js中配置以下内容

 步骤:引入axios -> 创建axios对象 -> 请求拦截器 -> 响应拦截器 -> 导出

//1、引入axios
import axios from "axios";//2、创建axios对象
const service = axios.create({baseURL:"http://localhost:8080"
});//3、请求拦截器  前端给后端发送数据
service.interceptors.request.use(// 响应成功拦截config => {// 对响应数据做点什么return config;},// 响应错误拦截error => {// 对响应错误做点什么Promise.reject(error)});//4、响应拦截器 后端给前端返回数据
service.interceptors.response.use(// 响应成功拦截response => {// 这个响应数据会返回给页面进行打印和使用return response.data;},// 响应错误拦截error => {// 对响应错误做点什么Promise.reject(error)});export default service;

【小tips】

在响应拦截器中为什么return response.data???

因为后端返回数据可能是

        {

                data:[ xxxx,xxxxx]

        }

所以我们后续在vue文件中想获取data内容

res 就是 response.data,如下打印结果

2.3 使用

五、API解耦

1、创建文件
新建src/apis/接口js文件(以yq.js文件为例)
2、封装api

3、api使用

在需要使用的vue文件中先导入需要的api方法

4、调用接口

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

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

相关文章

DataAnalytics之Tool:Metabase的简介、安装和使用方法、案例应用之详细攻略

DataAnalytics之Tool:Metabase的简介、安装和使用方法、案例应用之详细攻略 目录 Metabase的简介 1、特点 Metabase的安装和使用方法 1、安装 快速设置:开发环境 前端快速设置 后端快速设置 2、使用方法 Metabase的案例应用 Metabase的简介 Met…

frp v0.64.0 更新:开源内网穿透工具,最简洁教程

frp是一款跨平台的内网穿透工具,支持 Windows、macOS 与 Linux,它需要你有一台拥有固定公网 IP 的电脑,VPS 最好,然后就能愉快的进行内网穿透了。还支持 https,甚至可以用它进行小程序开发。Appinn v0.64.0 新增token…

【数据结构】B+ 树——高度近似于菌丝网络——详细解说与其 C 代码实现

文章目录B 树的定义B 树组织数据的方法往 B 树中插入键值对数据从 B 树中删除键值对把 B 树看作是 “真菌网络”——我理解并记忆 B 树的方法B 树的 C 代码实现初始化节点、B 树B 树节点内的二分查找B 树的数据插入操作B 树的删除数据操作范围查询与全局遍历销毁 B 树测试代码&…

01、数据结构与算法--顺序表

正式进入数据结构的学习,先从预备知识学起,戒焦戒躁戒焦戒躁...一、泛型的引入1、为什么需要泛型?先来看一个题目:实现一个类,类中包含一个数组成员,使得数组中可以存放任何类型的数据,也可以根…

8.23打卡 DAY 50 预训练模型+CBAM模块

DAY 50: 预训练模型与 CBAM 模块的融合与微调 今天,我们将把之前学到的知识融会贯通,探讨如何将 CBAM 这样的注意力模块应用到强大的预训练模型(如 ResNet)中,并学习如何高效地对这些模型进行微调,以适应我…

北极圈边缘生态研究:从数据采集到分析的全流程解析

原文链接:https://onlinelibrary.wiley.com/doi/10.1111/1744-7917.70142?afR北极圈边缘生态研究:从数据采集到分析的全流程解析简介本教程基于一项在俄罗斯摩尔曼斯克州基洛夫斯克市开展的长期生态学研究,系统讲解如何对高纬度地区特定昆虫…

Excel处理控件Aspose.Cells教程:使用Python将 Excel 转换为 NumPy

使用 Python 处理 Excel 数据非常常见。这通常涉及将数据从 Excel 转换为可高效操作的形式。将 Excel 数据转换为可分析的格式可能非常棘手。在本篇教程中,您将学习借助强大Excel处理控件Aspose.Cells for Python,如何仅用几行代码将 Excel 转换为 NumPy…

python 字典有序性的实现和OrderedDict

文章目录 一、Python 3.7+ 字典有序性的验证 二、如何在字典头部插入键值对 方法 1:创建新字典(推荐) 方法 2:使用 `collections.OrderedDict`(适合频繁头部插入场景) 方法 3:转换为列表操作(不推荐,效率低) 底层核心结构:双数组哈希表 有序性的实现原理 与旧版本(…

JVM 调优全流程案例:从频繁 Full GC 到百万 QPS 的实战蜕变

🔥 JVM 调优全流程案例:从频繁 Full GC 到百万 QPS 的实战蜕变 文章目录🔥 JVM 调优全流程案例:从频繁 Full GC 到百万 QPS 的实战蜕变🧩 一、调优本质:性能瓶颈的破局之道💡 为什么JVM调优如此…

基于TimeMixer现有脚本扩展的思路分析

文章目录1. 加入数据集到data_loader.py和data_factory.py2. 参照exp_classification.py写自定义分类任务脚本(如exp_ADReSS.py)3. 接一个MLP分类头4. 嵌入指标计算、绘图、保存训练历史的函数5. 开始训练总结**一、可行性分析****二、具体实现步骤****1…

技术演进中的开发沉思-75 Linux系列:中断和与windows中断的区分

作为一名从 2000 年走过来的老程序员,看着 IT 技术从桌面开发迭代到微服务时代,始终觉得好技术就像老故事 —— 得有骨架(知识点),更得有血肉(场景与感悟)。我想正是我的经历也促成了我想写这个…

【8位数取中间4位数】2022-10-23

缘由请输入一个8位的十进制整数,编写程序取出该整数的中间4位数,分别输出取出的这4位数以及该4位数加上1024的得数。 输入:一个整数。 输出:两个整数,用空格分隔-编程语言-CSDN问答 int n 0;std::cin >> n;std:…

mac电脑使用(windows转Mac用户)

首先,我们学习mac的键盘复制 command c 粘贴 command v 剪切 command xlinux命令行 退出中止 control c 退出后台 control d中英文切换大小写,按住左边向上的箭头 字母鼠标操作 滚轮:2个指头一起按到触摸板,上滑,…

项目中优惠券计算逻辑全解析(处理高并发)

其实这个部分的代码已经完成一阵子了,但是想了一下决定还是整理一下这部分的代码,因为最开始做的时候业务逻辑还是感觉挺有难度的整体流程概述优惠方案计算主要在DiscountServiceImpl类的findDiscountSolution方法中实现。整个计算过程可以分为以下五个步…

支持电脑课程、游戏、会议、网课、直播录屏 多场景全能录屏工具

白鲨录屏大师:支持电脑课程、游戏、会议、网课、直播录屏 多场景全能录屏工具,轻松捕捉每一刻精彩 在数字化学习、娱乐与办公场景中,高质量的录屏需求日益增长。无论是课程内容的留存、游戏高光的记录,还是会议要点的复盘、网课知…

LeetCode算法日记 - Day 20: 两整数之和、只出现一次的数字II

目录 1. 两数之和 1.1 题目解析 1.2 解法 1.3 代码实现 2. 只出现一次的数字II 2.1 题目解析 2.2 解法 2.3 代码实现 1. 两数之和 371. 两整数之和 - 力扣(LeetCode) 给你两个整数 a 和 b ,不使用 运算符 和 - ,计算并…

Spring AI 快速接入 DeepSeek 大模型

Spring AI 快速接入 DeepSeek 大模型 文章目录Spring AI 快速接入 DeepSeek 大模型Spring AI 框架概述核心特性适用场景官网与资源AI 提供商与模型类型模型类型(Model Type)AI提供商(Provider)两者的关系Spring AI 框架支持哪些 A…

jQuery 知识点复习总览

文章目录jQuery 知识点复习总览一、jQuery 基础1. jQuery 简介2. jQuery 引入3. jQuery 核心函数二、选择器1. 基本选择器2. 层级选择器3. 过滤选择器4. 表单选择器三、DOM 操作1. 内容操作2. 属性操作3. CSS 操作4. 元素操作四、事件处理1. 事件绑定2. 事件对象3. 自定义事件五…

博客系统接口自动化练习

框架图: 详细代码地址:gitee仓库 博客系统接口自动化文档请看文章顶部。

智慧矿山误报率↓83%!陌讯多模态融合算法在矿用设备监控的落地优化

原创声明:本文为原创技术解析文章,核心技术参数与架构设计引用自 “陌讯技术白皮书(智慧矿山专项版)”,算法部署相关资源适配参考aishop.mosisson.com平台的陌讯视觉算法专项适配包,禁止未经授权的转载与二…