文档
使用方法
取消请求
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
axios.get('/user/12345', {
cancelToken: source.token
}).catch(function (thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message);
} else {
// 处理错误
}
});
axios.post('/user/12345', {
name: 'new name'
}, {
cancelToken: source.token
})
// 取消请求(message 参数是可选的)
source.cancel('Operation canceled by the user.');
网络超时处理
service.interceptors.response.use(function (response) {
// 对响应数据做点什么
return response;
}, function (error) {
if(err.code === 'ECONNABORTED' || err.message === 'Network Error' || err.message.includes('timeout')) {
app.$message.warning('网络异常,请稍后重试!')
return Promise.reject(err)
}
return Promise.reject(error);
});
自定义 adapter
import Axios from 'axios';
import jsonpAdapter from './jsonpAdater';
const request = Axios.create({
adapter: (config) => {
if (config?.params?.format === 'jsonp') {
return jsonpAdapter(config);
}
// 这里需要将config.adapter设置为空
// 否则会造成无限循环
return defaultAxios({ ...config, ...{ adapter: undefined } });
},
});
阅读更多内容可以查看: