尚硅谷axios笔记——入门学习

news2025/7/8 14:58:30

这篇笔记不包括源码分析,呜呜感觉时间不够用了还得留时间准备教资面试

axios理解和使用

json-server服务与搭建

  1. 终端安装npm i -g json-server

  2. 启动服务 json-server --watch db.json 启动在当前文档前

  3. 数据去db.json找

 查看id为2的页面在http://localhost:3000.posts/2 /2就是id

认识axios

是基于promise的http客户端,可以在浏览器和node.js下运行

可以发送ajax请求

项目使用npm i axios / yarn add axios

国内访问快速且正确的获取axios资源去bootcdn,复制axios的script标签,再打印出来

 

axios 的基本使用

  <div class="container">
    <h2 class="page-header">基本使用</h2>
    <button class="btn btn-primary">发送GET请求</button>
    <button class="btn btn-warning">发送post请求</button>
    <button class="btn btn-success">发送put请求</button>
    <button class="btn btn-danger">发送 delete 请求</button>
  </div>
  <script>
    // 获取按钮
    const btns = document.querySelectorAll('button')
    btns[0].onclick = function() {
      // 发送 ajax请求
      axios({
        // 请求类型
        method: 'GET',
        // url
        url: 'http://localhost:3000/posts/2',
      }).then(response => {
        console.log(response);
      })
    }
    // 添加一篇新的文章
    btns[1].onclick = function() {
      // 发送 ajax请求
      axios({
        // 请求类型
        method: 'POST',
        // url
        url: 'http://localhost:3000/posts',
        // 请求体
        data: {
          title: "晚上涛哥没回消息",
          author: "vv"
        }
      }).then(response => {
        console.log(response);
      })
    }
    // 更新数据
    btns[2].onclick = function() {
      // 发送 ajax请求
      axios({
        // 请求类型
        method: 'PUT',
        // url
        url: 'http://localhost:3000/posts/3',
        // 请求体
        data: {
          title: "晚上涛哥没回消息",
          author: "vera"
        }
      }).then(response => {
        console.log(response);
      })
    }
    // 删除数据
    btns[3].onclick = function() {
      // 发送 ajax请求
      axios({
        // 请求类型
        method: 'DELETE',
        // url
        url: 'http://localhost:3000/posts/3',
        // 请求体   删除数据无需设置请求体
        // data: {
        //   title: "晚上涛哥没回消息",
        //   author: "vera"
        // }
      }).then(response => {
        console.log(response);
      })
    }

posts/2 后面的数字是页面跳转至那个id的页面

axios 其他方式发送请求

axios.request

axios.head

axios.option

axios.patch

axios 请求相应结果的结构

axios配置对象详细说明

url: 往哪发送请求

method: 用什么发

baseURL :设定url的基础结构 (会与url结合形成最终的 url 结果),换言之url简写、 baseURL是http前面的

transFormRequest :相应完后的预处理

headers: 对请求头信息进行处理

params:设定URL 的参数 例如 post?a=100&b=200

1、axios调用的返回值是Promise实例
2、成功的值叫response 失败的值叫error
3、axios成功的值是一个axios封装的response对象,服务器返回的真正数据在response.data中

- 配置中的想要的url是小写,严格规定的
  4、携带query参数时,编写的配置项叫params
  5、携带params参数时,需要自己手动在拼在url中

axios默认配置

每写一个请求都要写一遍url 路径太麻烦了,为了对重复代码的编写,可以提前设定好配置用axios.defaults

​
  <div class="container">
    <h2 class="page-header">基本使用</h2>
    <button class="btn btn-primary">发送GET请求</button>
    <button class="btn btn-warning">发送post请求</button>
    <button class="btn btn-success">发送put请求</button>
    <button class="btn btn-danger">发送 delete 请求</button>
  </div>
  <script>
    // 获取按钮
    const btns = document.querySelectorAll('button')
    // 设置默认配置
    axios.defaults.methods = 'GET'  //设置默认的请求类型为 get
    axios.defaults.baseURL = 'http://localhost:3000'  //设置基础 URL
    axios.defaults.params = {id: 100}
    axios.defaults.timeout = 3000  

    btns[0].onclick = function() {
      axios({
        url: '/posts',
      }).then(response => {
        console.log(response);
      })
    }

​

axios创建实例对象发送请求

有时实际开发中会用两个甚至两个接口文档,创建另外一个实例对象发送请求更省时省力

 

axios 拦截器

拦截器相当于函数,分为两大类(请求拦截器、相应拦截器)

请求前给数据和内容做一些检测,如果请求没有什么问题就可以请求

当服务器返回结果前:先对结果做一些预处理(格式化处理、记录..)

怎么用?

    // Promise
      // 设置一个请求拦截器
    axios.interceptors.request.use(function (config) {
      console.log('请求拦截器 成功');
        return config;
      }, function (error) {
        console.log('请求拦截器 失败');
        return Promise.reject(error);
      });
    
    // 设置响应拦截器
    axios.interceptors.response.use(function (response) {
      console.log('响应拦截器 成功');
        return response;
      }, function (error) {
        console.log('响应拦截器 失败');
        return Promise.reject(error);
      });

      // 发送请求
      axios({
        method: 'GET',
        url: 'http://localhost:3000/posts'
      }).then(response => {
        console.log(response);
      })

可以修改请求体,设置url参数 config.timeout = 2000 / congif.params = {a:100}

axios 取消请求

 

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

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

相关文章

Linux下调试方法汇总

一、Linux驱动调试方法 Linux驱动调试主要有以下几种方法&#xff1a; 1、利用printk。 2、查看OOP消息。 3、利用strace。 4、利用内核内置的hacking选项。 5、利用ioctl方法。 6、利用/proc 文件系统。 7、使用kgdb。 1.1、printk 这是驱动开发中最朴实无华&#xff0c;同时…

使用 Lambda 表达式的正确姿势,写得太好了叭

​ 编辑切换为居中 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; Lambda 表达式非常方便&#xff0c;在项目中一般在 stream 编程中用得比较多。 List<Student> studentList gen(); Map<String, Student> map studentList .stream() .…

Redis缓存的几个名词,缓存命中、缓存穿透、缓存雪崩、缓存击穿

本文为转载整理&#xff1a;原文地址为【https://zhuanlan.zhihu.com/p/422627839】 1. 缓存命中 缓存命中(cache hit)&#xff1a;当应用程序或软件请求数据时&#xff0c;会首先发生缓存命中。首先&#xff0c;中央处理单元&#xff08;CPU&#xff09;在其最近的内存位置&…

MySQL之BufferPool

文章目录前言一、BufferPool是什么二、BufferPool的组成2.1 结构图2.2 如何读取缓冲页三、BufferPool在MySQL中的作用前言 本文会讲述BufferPool是什么&#xff0c;BufferPool的组成&#xff0c;在mysql中的作用 一、BufferPool是什么 在mysql中是用来缓存磁盘中的页&#xff…

央企招聘:中储粮集团2023公开招聘公告(校招+社招,共700人)

中国储备粮管理集团有限公司2023年度招聘包括校园招聘和社会招聘&#xff0c;计划招募优秀人才700余人。 中国储备粮管理集团有限公司是经国务院批准组建的涉及国家安全和国民经济命脉的国有大型重要骨干企业&#xff0c;受国务院委托具体负责中央储备粮油棉的经营管理&#xf…

SSM毕设项目 - 基于SSM的房屋出租出售系统(含源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.2.1 系统开发流程3.2.2 操作流程3.3 系统结构设计4 项目获取1 项目简介 Hi&#xff0c;各位同学好呀&#xff0c;这里是M学姐&#xff01; 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品…

【学习笔记31】JavaScript冒泡排序和选择排序

笔记首发 一、冒泡排序 &#xff08;一&#xff09;核心原理 循环遍历数组&#xff0c;当前单元和下一个单元进行数据比较按照从小到大排序&#xff0c;应该是当前单元小于下一个单元&#xff0c;如果当前单元大于下一个单元&#xff0c;将交换两个单元存储的数据一次循环结束…

44、Map

一、基本介绍&#xff1a; 1、Map接口实现类的特点&#xff3b;很实用&#xff3d; 注意&#xff1a;这里讲的是JDK8的Map接口特点 1&#xff09;Map与Collection并列存在。用于保存具有映射关系的数据&#xff1a;Key-Value 2&#xff09;Map 中的 key和value 可以是任何引…

5个超好用的视频素材网站,视频剪辑必备。

推荐五个高质量视频素材网站&#xff0c;免费、可商用&#xff0c;赶紧收藏起来&#xff01;1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx网站素材非常丰富&#xff0c;有平面、UI、电商、办公、视频、音频等相关素材&#xff0c;视频素材质量很高&#xff0c;…

SpringBoot2.x系列教程31--SpringBoot中的缓存实现方案介绍

前言 作为一个程序员&#xff0c;我们不仅仅要把项目的功能实现出来&#xff0c;还要追求这个功能的高效和健壮&#xff0c;我们得想办法对项目的功能进行各种优化和性能的提升。其中缓存就是对程序性能进行显著提升的一个有效手段&#xff0c;那么在SpringBoot中对缓存有哪些…

我的数学学习回忆录——一个数学爱好者的反思(一)

早点关注我&#xff0c;精彩不迷路&#xff01;我是一个热爱数学20余年的数学爱好者&#xff0c;曾奉数学为宇宙的真理和一切行动的指南的极客。从小对数字世界好奇和敏感&#xff0c;玩各种数学思维游戏&#xff0c;然后在高考应试和竞赛中扎实训练数学基础&#xff0c;逐渐把…

[附源码]java毕业设计中华美食网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

docker安装filebeat 进行日志收集

1.介绍 filebeat和beats的关系 首先filebeat是Beats中的一员。   Beats在是一个轻量级日志采集器&#xff0c;其实Beats家族有6个成员&#xff0c;早期的ELK架构中使用Logstash收集、解析日志&#xff0c;但是Logstash对内存、cpu、io等资源消耗比较高。相比Logstash&#x…

matlab学习笔记(五)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 matlab学习笔记&#xff08;五&#xff09;一、绘制下列连续时间信号的波形图二、绘制下列离散时间信号的波形图三.已知信号f(t)的波形如下图所示&#xff0c;请用MATLAB绘出…

ES filter查询 高亮查询 聚合查询

filter查询 query&#xff0c;根据你的查询条件&#xff0c;去计算文档的匹配度得到一个分数&#xff0c;并且根据分数进行排序&#xff0c;不会做缓存的。 filter&#xff0c;根据你的查询条件去查询文档&#xff0c;不去计算分数&#xff0c;而且filter会对经常被过滤的数据进…

C++中的多态(上)

&#x1f9f8;&#x1f9f8;&#x1f9f8;各位大佬大家好&#xff0c;我是猪皮兄弟&#x1f9f8;&#x1f9f8;&#x1f9f8; 文章目录一、多态的概念二、虚函数三、破坏多态条件的现象1.破坏多态条件一&#xff0c;虚函数重写/覆盖2.破坏多态条件二四、 多态的两个条件不满足…

数据库审核工具SQLE部署及使用

点击上方蓝字关注我SQLE&#xff08; https://opensource.actionsky.com/sqle/ &#xff09;是由上海爱可生信息技术股份有限公司 开发并开源&#xff0c;支持多场景审核&#xff0c;支持标准化上线流程&#xff0c;原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。我们…

PC_磁盘HDD_SSD

文章目录磁盘存储器组成磁盘驱动器磁盘控制器盘片platter存储区域磁盘结构磁道track扇区sector&#x1f388;/块Block&#x1f386;磁头(Head)圆柱面cylinder磁记录原理磁盘性能指标记录密度磁盘的容量非格式化容量格式化容量数据传输率磁盘转速旋转周期T例平均存取时间纯读/写…

网络与通信程序设计-基于UDP的广播通信实例

目录 实验内容和设计思想 实验的内容 UDP的设计思想 UDP的协议头部 UDP通信编程思想 UDP的工作流程 UDP编程收发函数 广播通信 广播模式设置 广播套接字 UDP Socket的使用过程 UDP广播通信实例实现 initsock.h 服务器发送广播消息 客户端接收广播消息 运行效果 …

HttpMessageConverter 消息转换器

HttpMessageConverter 简介 HttpMessageConverter 是SpringMVC中提供的一个策略接口&#xff0c;它是一个消息转换器类&#xff0c;Spring Mvc中就是由HttpMessageConverter负责转换HTTP的请求和响应。 默认情况下&#xff0c;Spring Boot 会自动加载如下消息类型转换器&…