Axios的介绍与使用

news2024/12/24 11:42:32

Axios的介绍

get请求

Axios配置对象

创建实例发送请求

取消请求

Axios的介绍

目前前端最流行的 ajax 请求库 、react/vue 官方都推荐使用 axios ajax 请求
        特点:
  1. 基于 xhr + promise 的异步 ajax 请求库
  2. 浏览器端/node 端都可以使用
  3. 支持请求/响应拦截器
  4. 支持请求取消
  5. 请求/响应数据转换
  6. 批量发送多个请求

        方法和功能 :

  • axios(config): 通用/最本质的发任意类型请求的方式
  • axios(url[, config]): 可以只指定 url 发 get 请求
  • axios.request(config): 等同于 axios(config)
  • axios.get(url[, config]): 发 get 请求 获取数据
  • axios.delete(url[, config]): 发 delete 请求 删除数据
  • axios.post(url[, data, config]): 发 post 请求 添加数据
  • axios.put(url[, data, config]): 发 put 请求 更改数据
  • axios.defaults.xxx: 请求的默认全局配置
  • axios.interceptors.request.use(): 添加请求拦截器
  • axios.interceptors.response.use(): 添加响应拦截器
  • axios.create([config]): 创建一个新的 axios(它没有下面的功能)
  • axios.Cancel(): 用于创建取消请求的错误对象
  • axios.CancelToken(): 用于创建取消请求的 token 对象
  • axios.isCancel(): 是否是一个取消请求的错误
  • axios.all(promises): 用于批量执行多个异步请求
  • axios.spread(): 用来指定接收所有成功数据的回调函数的方法

        服务端与后台将使用之前项目搭建好的服务端数据(参考之前的搭建):

Vue+Echarts 项目演练(中)后台数据接口的创建_open_test01的博客-CSDN博客

        安装方式

npm install axios
//或者
yarn add axios

 get请求

        GET 用于从指定的端口得到资源。

         找到之后定义容器确认数据位置然后通过事件点击输出到控制台中

<template>
  <div id="box">
    <button id="get">get请求</button>
  </div>
</template>

<script setup>
//引入
import axios from 'axios'; 
import { onMounted ,reactive } from 'vue';

//定义容器变量
let data = reactive({})

//钩子函数
onMounted(() =>{
  //获取按钮
const betn = document.getElementById("get");
//绑定事件
betn.onclick = function(){
  //发送请求
  axios({
    //请求类型
    method:"GET",
    //URL 获取http://localhost:3000/one/data的json数据
    url:"http://localhost:3000/one/data",
  }).then((p) =>{ //函数回调
    //输出
    data = p;
    console.log(data.data.chartData1.chartData)
  })
}
})


</script>


<style lang="less">
#box{
  width: 700px;
  height: 700px;
  border: 1px solid red;
  margin: 0 auto;
  }
#get{
  height: 50px;
  width: 70px;

}
</style>

        控制台中查看输出的数据 

         在网络中查看请求详情

Axios配置对象

axios({
    url:"/user", //请求地址

    method:"get", //设置请求类型

    baseURL:"http://localhost:3000", //设置基本域名协议

    transformRequest:[//对请求数据进行处理
      function (data,headers){
        return data;
      }
    ],

    transformResponse:[ //对响应结果进行改变
      function (data){
        return data
      }
    ],

    headers:{"":""}, //对请求头信息进行配置

    })

        默认设置 

        定义之后 后续方便不需要在配置对象中进行设置请求类型 

axios.defaults.method = "GET"; //设置默认请求类型为GET

axios.defaults.baseURL = "http://localhost:3000"; //设置基本协议域名

创建实例发送请求

        axios.create()创造出来的对象与axios对象配置本身功能是贴近的

<template>
  <div id="box">
    <button id="bot">请求</button>
  </div>
</template>

<script setup>
//引入
import axios from 'axios'; 
import { onMounted } from 'vue';

//定义容器变量

//钩子函数
onMounted(() =>{
  //获取按钮
const betn = document.getElementById("bot");
//绑定事件
betn.onclick = function(){
  //创建实例对象
  let data = axios.create({
    baseURL:"http://localhost:3000",
    timeout:2000,
  });
  console.log(data)
}
})
</script>


<style lang="less">
#box{
  width: 700px;
  height: 700px;
  border: 1px solid red;
  margin: 0 auto;
  }
#bot{
  height: 50px;
  width: 70px;

}
</style>

        控制台输出为一个函数对象

        给对象添加参数 效果与axios对象相近 

 //创建实例对象
  let data = axios.create({
    baseURL:"http://localhost:3000",
    timeout:2000,
  });
  
  //给对象添加参数
  data({
    url:"/one/data",
  }).then((p) =>{
    console.log(p)
  })

        也可以用现成封装好的对象进行实现 

 //创建实例对象
  let data = axios.create({
    baseURL:"http://localhost:3000",
    timeout:2000,
  });
  
  //使用封装好的get方法传入参数
  data.get("one/data").then((p) =>{
    console.log(p)
  })

        效果也是相同的

 

取消请求

<template>
  <div id="box">
    <button id="get">get请求</button>
    <button id="esc">取消请求</button>
  </div>
</template>

<script setup>
//引入
import axios from 'axios'; 
import { onMounted ,reactive } from 'vue';

//定义容器变量
let data = reactive({})

//钩子函数
onMounted(() =>{

const betn = document.getElementById("get");

//1.声明全局变量
let cancel = null;

betn.onclick = function(){

  axios({
    method:"GET",
    
    url:"http://localhost:3000/one/data",

    //2.添加配置对象的属性
    cancelToken: new axios.CancelToken(function(c){
      //3.赋值给全局变量
      cancel = c;
    })
  }).then((p) =>{
    data = p;
    console.log(data.data.chartData1.chartData)
  })
}

//给取消请求按钮绑定事件
const esc = document.getElementById("esc");

esc.onclick = function(){
    cancel();
}

})


</script>


<style lang="less">
#box{
  width: 700px;
  height: 700px;
  border: 1px solid red;
  margin: 0 auto;
  }
#get{
  height: 50px;
  width: 70px;
}

#esc{
  height: 50px;
  width: 70px;
}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

20.Java序列化

Java序列化 一、序列化和反序列化 序列化&#xff1a;指堆内存中的java对象数据&#xff0c;通过某种方式把对存储到磁盘文件中&#xff0c;或者传递给其他网络节点&#xff08;网络传输&#xff09;。这个过程称为序列化&#xff0c;通常是指将数据结构或对象转化成二进制的…

IPC行业信息汇总

IPC&#xff1a;“网络摄像机”&#xff0c;是IP Camera的简称。它是在前一代模拟摄像机的基础上&#xff0c;集成了编码模块后的摄像机。它和模拟摄像机的区别&#xff0c;就是在新增的“编码模块”上。 模拟摄像机&#xff0c;顾名思义&#xff0c;输出的是模拟视频信号。模拟…

大数据系列——Spark理论

概述 Apache Spark&#xff0c;全称伯克利数据分析栈&#xff0c;是一个开源的基于内存的通用分布式计算引擎&#xff0c;内部集成大量的通用算法&#xff0c;包括通用计算、机器学习、图计算等&#xff0c;用于处理大数据应用。 主要由下面几个核心构件组成&#xff0c;具体包…

C++、STL标准模板库和泛型编程 ——适配器、补充(侯捷)

C、STL标准模板库和泛型编程 ——适配器 &#xff08;侯捷&#xff09;--- 持续更新 适配器&#xff08;Adapters&#xff09;容器适配器&#xff08;Container Adapters&#xff09;仿函数适配器&#xff08;Functor Adapters&#xff09;bind2nd&#xff08;绑定第二实参&…

Tomcat源码:Pipeline与Valve

参考资料&#xff1a; 《Tomcat组成与工作原理》 《Tomcat - Container的管道机制&#xff1a;责任链模式》 《Tomcat源码解析系列 Pipeline 与 Valve》 前文&#xff1a; 《Tomcat源码&#xff1a;启动类Bootstrap与Catalina的加载》 《Tomcat源码&#xff1a;容器的生命…

Mybatis源码01-Executor

前言 为了方便公司业务排查问题&#xff0c;要求打印执行的sql&#xff0c;以及执行时间。编写了一个Mybatis的拦截器&#xff0c;此前从未看过mybatis的源码&#xff0c;在调试的过程中不断阅读源码&#xff0c;后边想更深刻了解一下&#xff0c;看了鲁班大叔的视频&#xff…

OSCP-Nickel(爆破pdf、本地http提权)

目录 扫描 HTTP 提权 扫描 FileZilla不接受匿名FTP登录。 端口21上的SSH和3389上的RDP很少是初始入口点,但是如果遇到一些凭据,可以记住这一点。 HTTP 打开Web浏览器并导航到端口8089和3333,用于的HTTP服务器。端口8089似乎是某种类型的开发环境。 单击一个按钮重定向到…

boot-admin整合Quartz实现动态管理定时任务

淄博烧烤爆红出了圈&#xff0c;当你坐在八大局的烧烤摊&#xff0c;面前是火炉、烤串、小饼和蘸料&#xff0c;音乐响起&#xff0c;啤酒倒满&#xff0c;烧烤灵魂的party即将开场的时候&#xff0c;你系统中的Scheduler&#xff08;调试器&#xff09;&#xff0c;也自动根据…

在函数中使用变量

shell脚本编程系列 向函数传递参数 函数可以使用标准的位置变量来表示在命令行中传给函数的任何参数。其中函数名保存在$0变量中&#xff0c;函数参数则依次保存在$1、$2等变量当中&#xff0c;也可以使用特殊变量$#来确定参数的个数 在脚本中调用函数时&#xff0c;必须将参…

day3 TCP/IP协议与五层体系结构

TCP / IP 四层体系结构 TCP / IP工作流程&#xff1a; 现在互联网使用的 TCP/IP 体系结构已经发生了演变&#xff0c;即某些应用程序可以直接使用 IP 层&#xff0c;或甚至直接使用最下面的网络接口层。 沙漏型展示&#xff1a; 五层体系结构 各层的主要功能 应用层&#xff1…

C++ Primer阅读笔记--语句的使用

① 空语句 最简单的语句是空语句&#xff0c;其只含有一个单独的分号&#xff1b; ② switch语句 case 关键字和它对应的值一起被称为 case 标签&#xff0c;case 标签必须是整型常量表达式&#xff1b; char ch getVal(); int iVal 42; switch(ch){case 3.14: // 错误&#…

ZmosHarmony buildroot移植与使用

前言 移植过程 1、添加编译选项编译buildroot。 2、开机启动时设置 LD库的环境变量与PATH路径。 是什么原因需要这样操作&#xff1f; 主要使用busybox&#xff0c;使用buildroot的瑞士军dao。 使用busybox 为buildroot下的使用 第一次启动时设置 由于是在vendor分区因此 …

01 openEuler虚拟化-KVM虚拟化简介

文章目录 01 openEuler虚拟化-KVM虚拟化简介1.1 简介1.2 虚拟化架构1.3 虚拟化组件1.4 虚拟化特点1.5 虚拟化优势1.6 openEuler虚拟化 01 openEuler虚拟化-KVM虚拟化简介 1.1 简介 在计算机技术中&#xff0c;虚拟化是一种资源管理技术&#xff0c;它将计算机的各种实体资源&…

ActiveMQ 反序列化漏洞 (CVE-2015-5254)漏洞复现

当前漏洞环境部署在vulhub,当前验证环境为vulhub靶场&#xff08;所有实验均为虚拟环境&#xff09; 实验环境&#xff1a;攻击机----kali 靶机&#xff1a;centos7 需要的jar包&#xff1a;jmet-0.1.0-all.jar 1、启动docker&#xff0c;进入vulhub&#xff08;靶机&#xff0…

centos主机测试io极限

这里使用fio工具来测试磁盘的io 1.安装fio命令 yum -y install fio 2.在需要测试的磁盘所挂载的目录下创建一个测试目录 由于我就只有一个磁盘&#xff0c;/目录也挂载在这个磁盘上&#xff0c;所以就直接在tmp目录里创建 mkdir /tmp/cs 3.创建一个名为 test.fio 的文件&a…

中级软件设计师备考---信息系统安全

目录 安全属性对称加密技术非对称加密技术信息摘要和数字签名数字信封和PGP各个网络层次的安全保障网络威胁与攻击防火墙技术 安全属性 保密性&#xff1a;最小授权原则、防暴露、信息加密、物理保密 完整性&#xff1a;安全协议、校验码、密码校验、数字签名、公证 可用性&a…

【 Spring 事务传播机制 】

文章目录 一、概念二、为什么需要事务传播机制&#xff1f;三、事务传播机制有哪些&#xff1f;四、Spring 事务传播机制使⽤和各种场景演示4.1 ⽀持当前事务&#xff08;REQUIRED&#xff09;4.2 不⽀持当前事务&#xff08;REQUIRES_NEW&#xff09;4.3 NESTED 嵌套事务4.4 嵌…

软考软件设计师 软件工程笔记

软件工程 CMM&#xff08;能力成熟度模型&#xff09;CMMI&#xff08;能力成熟度模型集成&#xff09;瀑布模型V模型&#xff08;质量保证&#xff09;增量模型演化模型&#xff08;迭代更新&#xff09;原型模型螺旋模型&#xff08;风险分析&#xff09;喷泉模型统一过程&am…

大数据编程实验二:熟悉常用的HDFS操作

实验目的 1、理解HDFS在Hadoop体系结构中的角色 2、熟悉使用HDFS操作常用的Shell命令 3、熟悉HDFS操作常用的Java API 实验平台 1、操作系统&#xff1a;Windows 2、Hadoop版本&#xff1a;3.1.3 3、JDK版本&#xff1a;1.84、Java IDE&#xff1a;IDEA 实验步骤 前期&#x…

Springboot整合WebSocket(纯后端)

文章目录 一、 HTTP协议与WebSocket区别二、客户端&#xff08;浏览器&#xff09;实现1、websocket对象2、websocket事件3、WebSocket方法 三、服务端实现1、连接过程2、服务端接收客户端消息3、服务端推送消息给客户端 四、后端功能实现 一、 HTTP协议与WebSocket区别 HTTP协…