axios的定义

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

axios的功能特点

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

axios框架的基本使用

  • npm安装
npm install axios -S

发送pos请求的简单演示

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

axios的请求参数

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

发送并发请求

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

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

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

网络模块封装

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

axios拦截器

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

    一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...

  2. 一招教你写博客,Typora+PicGo+阿里云oss,最好用的Markdown+最好用的图床工具!

    博客 写博客的好处 1.使自己变得更善于观察.一旦你养成了记博客的习惯,与此同时你也赋予了一个更好的机会给自己,让自己去更细致地观察生活.一个人的生活经历本就是价值连城的,从中学习到的知识,教训更是异 ...

  3. P1739_表达式括号匹配(JAVA语言)

    思路:刚开始想用stack,遇到'('就push,遇到')'就pop,后来发现其实我们只需要用到栈里'('的个数,所以我们用一个变量统计'('的个数就好啦~ 题目描述 假设一个表达式有英文字母(小写) ...

  4. python 查看模块中的方法

    way 1.help() way 2.dir() # dir() 函数不带参数时,返回当前范围内的变量.方法和定义的类型列表: way 3. 使用inspect模块, inspect.getmembe ...

  5. C++覆盖,隐藏,重载

    code[class*="language-"], pre[class*="language-"] { color: rgba(51, 51, 51, 1); ...

  6. 错误提示:Access denied for user 'GC'@'localhost' (using password: YES)

    错误描述:使用的是C3P0连接池 Spring整合Mybatis时出现错误 java.sql.SQLException: Access denied for user 'GC'@'localhost' ...

  7. java例题_03 水仙花数

    1 /*3 [程序 3 水仙花数] 2 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. 3 例如:153 是一个 ...

  8. Spring笔记(三)

    Spring AOP 一.AOP(概念) 1. 什么是AOP 面向切面编程(方面),利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各个部分之间的耦合度降低,提高程序的可重用性,同时提高了 ...

  9. 分享15个实用VSCode插件,快来收藏吧!

    Visual Studio Code 是由微软开发的一款免费.跨平台的文本编辑器.它有卓越的性能和丰富的功能.VSCode 也有一个扩展和主题市场,为了帮助大家挑选出值得下载的插件,我们针对性的收集了 ...

  10. Leedcode算法专题训练(分治法)

    归并排序就是一个用分治法的经典例子,这里我用它来举例描述一下上面的步骤: 1.归并排序首先把原问题拆分成2个规模更小的子问题. 2.递归地求解子问题,当子问题规模足够小时,可以一下子解决它.在这个例子 ...