axios个人常用整理
github地址:
axios/axios: Promise based HTTP client for the browser and node.js (github.com)
axios安装导入
1 2 3 4
| npm install axios --save
import axios from 'axios'
|
全局方式(项目中不会这么使用,后面会自行封装)
axios本身返回promise。
1.基本使用
1 2 3 4 5 6 7 8 9 10 11
| axios({ url: 'http://127.0.0.1:8000/xxx', method: 'get', params: { page: 1 } }).then(res => { console.log(res) }).catch(err => { console.log(err) })
|
2.并发请求
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| axios.all([ axios({ url: "http://127.0.0.1:8000/xxx" }), axios({ url: "http://127.0.0.1:8000/yyy", method: "post", data: { userName: 'zhangshan' } }), ]).then(res => { console.log(res[0]) console.log(res[1]) })
|
3.全局的配置
1 2 3
| 比如: axios.defaults.baseURL = 'http://127.0.0.1:8000' axios.defaults.timeOut = 5000
|
但是项目中有时不可能只有一个baseURL或者其他配置不相同,这时候我们就需要实例化axios
实例化方式(项目中也不会这么使用,后面会自行封装)
1 2 3 4 5 6 7 8 9 10 11 12
| const sl1 = axios.create({ baseURL="http://127.0.0.1:8000", timeOut: 5000 })
sl1({ url: "/xxx" }).then(res => { console.log(res) })
|
拦截器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 请求拦截: axios.interceptors.requset.use( (config) => { console.log(config) return config }, (err) => { console.log(err) } )
响应拦截: axios.interceptors.response.use( (res) => { console.log(res) return res.data }, (err) => { console.log(err) } )
|
axios封装(常用)
每个人封装不同,一下为本人常用封装
封装request.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| import axios from "axios"
export function request(option){ const sl1 = axios.create({ baseURL: "http://127.0.0.1:8000", timeOut: 5000 })
sl1.interceptors.request.use( (config) => { console.log(config) return config }, (err) => { console.log(err) } ) sl1.interceptors.response.use( (res) => { console.log(res) return res.data }, (err) => { console.log(err) } ) return sl1(option) }
|