导入
import axios from 'axios'
创建
axios合并默认配置和实例配置,创建一个新的实例并返回 (请求配置 > 实例配置 > 默认配置)
默认配置(全局配置)
axios.defaults.timeout = 1000
axios.defaults.baseURL = 'http://localhost:8080'
实例创建
const instance1 = axios.create({
baseURL: "http://localhost:8080",
timeout: 1000,
})
const instance2 = axios.create({
baseURL: "http://localhost:9090",
timeout: 1000,
})
instance1、2为得到的新实例
请求配置
({
url: '/findById',
method: 'get',
params: {
id: id
}
})
拦截
// 2.1.请求拦截
instance.interceptors.request.use(config => {
return config
}, err => {
console.log(err);
})
// 2.2.响应拦截
instance.interceptors.response.use(res => {
return res.data
}, err => {
console.log(err);
})
取消请求
利用CancelToken工厂函数创建cancel token
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
// get 方法使用案例
axios.get('user/12345', {
cancelToken: source.token
}).catch(function(thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message)
} else {
// handle error
}
})
// post 使用案例
axios.post('/user/12345', {
name: 'name what'
}, {
cancelToken: source.token
})
// 执行取消请求操作
source.cancel(‘请求已取消’)