axios的定义

  • axios是一个基于Promise,用于浏览器和node的HTTP客户端

axios的功能特点

  • 在浏览器中发送 XMLHttpRsquests 请求
  • 在node.js中发送http请求
  • 支持Promise API
  • 拦截请求和响应
  • 转换请求和响应数据
  • 等等

axios框架的基本使用

  • npm安装
  1. npm install axios -S

发送pos请求的简单演示

  1. axios({
  2. url: 'http://123.207.32.32:8000/home/multidata',
  3. method: 'pos'
  4. }).then(res => console.log(res))

axios的请求参数

  • baseURL:请求的根路径
  1. baseURL = 'http://123.207.32.32:8000'
  • timeout:请求超时时间
  1. timeout = 5000
  • method:发送请求所使用的方法,默认使用get方法
  1. method = 'get'
  • params:URL查询对象
  1. params = {type: 'pop',page: 1}

发送并发请求

  • axios.all(),接收一个数组作为参数,返回一个promise对象
  • 使用axios.spread可将数组[res1, res2]展开为res1,res2
  1. axios.all([
  2. axios({url: '/home/multidata'}),
  3. axios({url: '/home/data', params: {type: 'pop',page: 1}})
  4. ]).then(axios.spread(res1, res2) => {
  5. console.log(res1)
  6. console.log(res2)
  7. })

创造axios实例将全局配置改为局部配置

  • 调用create方法,该方法会返回一个axios实例,该实例同样会返回一个Promise对象
  1. const instance1 = axios.create({
  2. baseURL: 'http://123.207.32.32:8000',
  3. timeout: 500
  4. })
  5. instance1({
  6. url: '/home/multidata'
  7. }).then(res => console.log(res))

网络模块封装

  • 将网络相关信息单独放入一个文件中,导出函数
  1. //request.js
  2. import axios from 'axios'
  3. export function request(config) {
  4. const instance = axios.create({
  5. baseURL: 'http://123.207.32.32:8000',
  6. timeout: 5000
  7. })
  8. // 拦截器
  9. // ……
  10. return instance(config)
  11. }
  • 使用
  1. import {
  2. request
  3. } from './network/request.js'
  4. request({
  5. url: '/home/multidata'
  6. }).then(res => console.log(res))
  7. .catch(err => console.log(err))

axios拦截器

  • axios提供了拦截器,用于我们在每次发送请求或得到响应后,进行对应的处理
  1. export function request(config) {
  2. // 1.创建做axios实例
  3. const instance = axios.create({
  4. baseURL: 'http://123.207.32.32:8000',
  5. timeout: 5000
  6. })
  • 请求拦截
  1. axios.interceptors.request.use(config => {
  2. console.log(config)
  3. // 1.比如config中的一些不符合服务器的要求
  4. // 2.比如每次发送网络请求时,都希望在界面中显示一个请求的图标
  5. // 3.某些网络请求(比如登录),必须携带一些特殊的信息
  6. // 必须要返回拦截的对象
  7. return config
  8. }, err => {
  9. return err
  10. })
  • 响应拦截
  1. instance.interceptors.response.use(res => {
  2. // console.log(res)
  3. return res.data
  4. }, err => {
  5. console.log(err)
  6. return err
  7. })
  8. //3、发送真正的网络请求
  9. return instance(config)

网络请求axios的更多相关文章

  1. 使用axios优雅的发起网络请求

    原文链接:https://www.jianshu.com/p/73585303fdc0 公司项目使用了vue作为技术栈,便理所应当地使用了官方推荐的axios进行网络请求,这里记录下axios的封装方 ...

  2. Axios 网络请求组件封装 (鉴权、刷新、拦截)

    一.前言 注意:本教程需要你对axios有一定的了解,不适用于小白(只能借鉴,希望你能自己动手),注释都写的很清楚.此封装并非完整版,已进行部分删减修改操作,但仍然适用于大部分业务场景,如果不适用于你 ...

  3. 十. Axios网络请求封装

    1. 网络模块的选择 Vue中发送网络请求有非常多的方式,那么在开发中如何选择呢? 选择一:传统的Ajax是基于XMLHttpRequest(XHR) 为什么不用它呢?非常好解释配置和调用方式等非常混 ...

  4. vue(24)网络请求模块axios使用

    什么是axios Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. 主要的作用:axios主要是用于向后台发起请求的,还有在请求中做更多是可控功能. a ...

  5. React Native网络请求

    很多移动应用都需要从远程地址中获取数据或资源.你可能需要给某个REST API发起POST请求以提交用户数据,又或者可能仅仅需要从某个服务器上获取一些静态内容--以下就是你会用到的东西.新手可以对照这 ...

  6. Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置

    前端网络访问,主流方案就是 Ajax,Vue 也不例外,在 Vue2.0 之前,网络访问较多的采用 vue-resources,Vue2.0 之后,官方不再建议使用 vue-resources ,这个 ...

  7. web开发网络请求到数据的整合办法

    开发中向服务器请求到的数据是特别复杂的,需要从中抽离出需要展示的数据进行展示个和交互. 思路: 先将请求到的复杂数据传递到一个类A中,从类A里抽离出需要的数据.需要展示数据的地方,面向类A开发,类A关 ...

  8. Jest中Mock网络请求

    Jest中Mock网络请求 最近需要将一个比较老的库修改为TS并进行单元测试,修改为TS还能会一点,单元测试纯粹是现学现卖了,初学Jest框架,觉得在单元测试中比较麻烦的就是测试网络请求,所以记录一下 ...

  9. 介绍一下主流的浏览器的开发者工具(js调试和查看网络请求)

    1.打开开发者工具:右键-->检查 (快捷键 f12) 2.开发者工具介绍: (1): 选择页面的dom进行查看 (2):设备适配 (3)元素: ① 可以查找到界面对应的dom: ② 通过计算样 ...

随机推荐

  1. P2260 [清华集训2012]模积和 【整除分块】

    一.题目 P2260 [清华集训2012]模积和 二.分析 参考文章:click here 具体的公式推导可以看参考文章.博主的证明很详细. 自己在写的时候问题不在公式推导,公式还是能够比较顺利的推导 ...

  2. SpringMVC请求映射handler源码解读

    请求映射源码 首先看一张请求完整流转图(这里感谢博客园上这位大神的图,博客地址我忘记了): 前台发送给后台的访问请求是如何找到对应的控制器映射并执行后续的后台操作呢,其核心为DispatcherSer ...

  3. Linux sed 使用笔记

    sed 工具使用笔记 Linux中经常需要对一些超大的文本文件进行操作,例如 GB 级别的 CSV.TXT.LOG 文件,如果使用 vi 或者 vim 编辑器操作会非常慢且卡,此时 sed 工具或许可 ...

  4. Lombok 常用注解总结

    本文转载自知乎专栏 极乐科技.有所整理. 主要注解 @Data @Setter @Getter @Log4j @AllArgsConstructor @NoArgsConstructor @Equal ...

  5. github文件快速下载

    目录 一,提升加载速度 二,提升下载速度 只是想快速下载文件的直接看第二部分. github加载速度慢究其原因还是伟大的墙的存在.我们需要赞美墙,但就算墙很伟大,问题还是要解决的. 有问题就解决问题, ...

  6. 「Leetcode-算法_MId1006」从单栈到双栈

    Mid 1006 笨阶乘 栈/后缀 运算优化 + 栈 思路描述 每四个数一组 这四个数中前三个会进行乘.除 然后与最后一个相加 Stack 入前三个之和 与 最后一个数 以 4 举例 运算式 4 * ...

  7. mysql中FIND_IN_SET函数用法

    本篇文章主要介绍mysql中FIND_IN_SET函数用法,用来精确查询字段中以逗号分隔的数据 以及其与 like 和 in 的区别 1.问题发现 之前在做工作任务时有这么一个需求:需要用接口所传的服 ...

  8. 第6 章 : 应用编排与管理:Deployment

    应用编排与管理 本节课程要点 需求来源: 用例解读: 操作演示以及架构设计. 需求来源 背景问题 首先,我们来看一下背景问题.如下图所示:如果我们直接管理集群中所有的 Pod,应用 A.B.C 的 P ...

  9. [Azure DevOps] 如何安装并配置 Build Agent

    1. 编译服务器 在 Azure Pipelines 中至少需要一个编译服务器的 Agent 才能编译代码或发布软件.Azure DevOps 本身已经提供了一个 Agent,但出于各种理由(需要特殊 ...

  10. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作ubuntu16.04-16

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作ubuntu16.04-16 欢迎加QQ群:1026880196 进行交流学习   制作Ope ...