传统的引入方式
- vue2
|  | import axios from 'axios';
 axios.defaults.baseURL = 'https://www.escook.cn'
 
 Vue.prototype.$http = axios;
 
 | 
- vue3
| 1
 | app.config.globalProperties.$http = axios;
 | 
什么是拦截器
拦截器(Interceptors)会在每次发起ajax请求和得到响应时自动触发。

应用场景:
如何使用请求拦截器
通过axios.interceptors.request(成功回调,
失败回调)可以配置请求拦截器,示例代码如下:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | axios.interceptors.request(config => {
 return config;
 
 },
 
 error => {
 
 return Promise.reject(error);
 
 });
 
 | 
注意:失败回调可以省略。
Token认证
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | import axios from 'axios';
 axios.defaults.baseURL = 'https://www.escook.cn';
 
 axios.interceptors.request.use(config => {
 
 config.headers.Authorization = 'Bearer XXX';
 
 return config;
 
 });
 
 Vue.prototype.$http = axios;
 
 | 
Loading效果
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | import axios from 'axios';
 import { Loading } from 'element-ui';
 
 let loadingInstance = null;
 
 axios.defaults.baseURL = 'https://www.escook.cn';
 
 axios.interceptors.request.use(config => {
 
 loadingInstance = Loading.service({ fullscreen: true });
 
 return config;
 
 })
 
 | 
如何使用响应拦截器
通过关闭上例的Loading效果来展示响应拦截器的功能:
| 12
 3
 4
 5
 6
 7
 
 | axios.interceptors.response.use(response => {
 loadingInstance.close()
 
 return response
 
 })
 
 | 
参考:
Vue3.0-12.拦截器 - 了解在vue2项目中如何全局配置axios
Vue3.0-13.拦截器 - 了解拦截器的概念及典型应用场景
Vue3.0-14.拦截器 - 使用请求拦截器配置Token认证
Vue3.0-15.拦截器 - 使用拦截器实现Loading效果