Interceptors
axios.interceptors.request.use(function (config) {
console.log('请求拦截器 成功');
//修改 config 中的参数
config.timeout = 2000;
return config;
}, function (error) {
console.log('请求拦截器 失败 ');
return Promise.reject(error);
});
// 设置响应拦截器
axios.interceptors.response.use(function (response) {
console.log('响应拦截器 成功');
// 对响应数据进行操作
return response.data;
// return response;
}, function (error) {
console.log('响应拦截器 失败')
return Promise.reject(error);
});
Cancellation
//声明全局变量
let cancel11 =null ;
btns[0].onclick =function(){
//方法一
if(cancel11 ==null){ // 只有当上次执行结束才能发起下一次请求 以防止服务器压力过大
axios({
method:'get',
url:"http://localhost:3000/posts",
cancelToken: new axios.CancelToken(function(e){
cancel11=e
})
}).then((res)=>{
cancel11=null
console.log(res);
}).catch((err)=>{
console.log(err);
})
}
};
// 取消发送请求
btns[1].onclick =function(){
cancel11();
cancel11 =null
}```