Axios,可以理解为 ajax i/o systemAxios ,是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而...
Axios,可以理解为 ajax i/o systemAxios ,是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests:
- 在浏览器中创建
XMLHttpRequest 请求
- 在
node.js
中发送http
请求- 支持
Promise API
- 拦截请求和响应
- 转换请求和响应数据
- 取消要求
- 自动转换
JSON
数据- 客户端支持防止
CSRF/XSRF
(跨域请求伪造)更多详情请点击官网
下面我将结合vue-cli
和node
第三方包来对axios进行快速使用,不会vue-cli请点击
快速上手axios
- 一、安装
- 二、基础使用
- 2.1、axios导入
- 2.2、创建axios实例
- 2.3、以上就是我们使用axios的基本步骤,下面演示全部代码以及结果
- 三、进阶使用
- 3.1、axios简写
- 3.2、axios并发请求
- 3.3、axios局部实例
- 3.4、axios拦截器与响应器
- 3.4.1、axios拦截器
- 3.5.1、axios响应器
一、安装
打开我们创建好的脚手架(脚手架最好带router),打开 终端 或者 cmd 找到我们所写的文件 输入npm install axios --save
二、基础使用
2.1、axios导入
import axios from 'axios'
2.2、创建axios实例
axios常见参数:
url
:请求的接口路径method
(可选):请求的方式,可以是get、post、put、delete、head、options等等(默认不写为get请求)params
(可选):在get请求方式下携带的参数,即端口?后的参数data
(可选):在post请求方式下携带的参数
前面说过axios
是基于promise
网络请求库的,所以它可以像使用promise一样进行异步回调,如下可以用:
.then
来异步获取请求的数据,.catch
来异步获取请求的报错
注意:请求的接口路径是后端人员提供给我们的,如果后端人员未提供,我们也可以先利用mockjs
去模拟数据接口
axios({
url: "请求的接口路径",
method: '请求的方式',
params: {
type: 'sell',
page: 5
}
}).then(res =>
console.log(res)
).catch(error =>
console.log(error)
)
2.3、以上就是我们使用axios的基本步骤,下面演示全部代码以及结果
三、进阶使用
3.1、axios简写
当我们要用的url的路径太长并且要多次使用的时候,我们可以把其基础的路径利用axios.defaults
提取出来。如下
axios.defaults.baseURL = 'http://www/8080'
axios.defaults.timeout = 5000
axios({
url: "home", //这里axios会自动帮我们拼接地址,相当于http://www/8080/home
method: 'get'
}).then(res =>
console.log(res)
).catch(error =>
console.log(error)
)
3.2、axios并发请求
当我们想要同时满足多个请求条件时再进行数据传送,我们也可以利用 axios 所提供的创建实例方法:axios.all
3.3、axios局部实例
以上我们定义的全部是axios全局实例,如果我们想使用局部的axios,也非常的简单。利用axios.create
来创建局部实例,给它一个变量保存,我们在下面就可以多次调用了。具体使用如下:
const instance1 = axios.create({
baseURL: 'http://www/8080',
timeout: 5000
})
instance1({
url: '/home/multidata'
}).then(res => {
console.log(res);
})
instance1({
url: '/home/data',
params: {
type: 'sell',
page: 5
}
}).then(res => {
console.log(res);
})
3.4、axios拦截器与响应器
3.4.1、axios拦截器
拦截器request
是指当发送请求或者得到响应被then或catch处理之前对数据进行拦截,拦截后可对数据做一些处理,比如:
- 给请求数据添加头部信息,或对响应数据进行序列化,然后再传给浏览器,这些都可以在拦截器中进行
- 每次发送网络请求时,都希望在界面中显示一个请求图标
- config中的一些信息不符合服务器的要求
- 某些网络请求(比如登录(token)),必须携带一些特殊的信息
注意:拦截的数据一定要返回,否则无法取到数据
//对instance数据进行拦截,instance是一个axios局部实例对象
instance.interceptors.request.use(config => {
console.log(config);
return config
}, err => {
console.log(err);
});
3.5.1、axios响应器
响应器response
是指拦当数据响应前对数据进行一下处理,往往数据可能夹杂很多我们不需要的内容,我们可以利用响应器对其进行过滤筛选。
注意:拦截的数据一定要返回,否则无法取到数据
//对instance数据进行拦截,instance是一个axios局部实例对象
instance.interceptors.response.use(res => {
return res.data
}, err => {
console.log(err);
});
本文标题为:05-快速上手axios
基础教程推荐
- iOS开发使用XML解析网络数据 2022-11-12
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- iOS开发 全机型适配解决方法 2023-01-14
- Android Compose自定义TextField实现自定义的输入框 2023-05-13
- Flutter进阶之实现动画效果(三) 2022-10-28
- Android实现短信验证码输入框 2023-04-29
- IOS获取系统相册中照片的示例代码 2023-01-03
- Android开发Compose集成高德地图实例 2023-06-15
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18