功能特点
- 在浏览器中发送XMLHttpRequests请求
- 在node.js 中发送http请求
- 支持Promise API
- 拦截请求和响应
- 转换请求和响应数据
安装
npm install axios --save
请求方式
axios(config)
axios.request(config)
axios.get(url[,config])
import axios from 'axios'//1.没有请求参数axios.get('url') .then(res=>{ console.log(res)}) .catch(err=>{console.log(err) }) //2.有请求参数axios.get('url',{params:{type:'sell',page:1}}) .then(res=>{console.log(res)}) .catch(err=>{console.log(err)});
axios.delete(url[,config])
axios.head(url[,config])
axios.post(url[,config])
axios.put(url[,config])
axios.patch(url[,config])
axios.all()并发请求
axios.all([axios({url:'url'}),axios({url:'url'})]) .then(results=>{ //results是一个数组,results[0]是第一个回调的结果;results[1]是第二个回调的结果; var result1=results[0] var result2=results[1] })//axios.all([])返回的结果是一个数组,使用axios.spread可将数组[res1,res2]展开(spread)为res1,res2axios.all([axios({url:'url'}),axios({url:'url'})]) .then(axios.spread((res1,res2)=>{ console.log(res1) console.log(res2) }))
拦截器
![b26d87fdb9c4e39ba16fbfcab1783058.png](https://i-blog.csdnimg.cn/blog_migrate/aaf1a8e72f015bad0522ce81db1699e3.jpeg)
4个拦截(请求成功,请求失败,响应成功,响应失败)
const instance=axios.create({baseURL:'',timeout:5000});instance.interceptors.request.use(config=>{ console.log('request 成功'); return config;},err=>{ console.log('request 失败'); return err;})instance.interceptors.response.use(response=>{ console.log('response 成功'); return response.data;},err=>{ console.log('response 失败'); return err;})