当我们在做接口请求时,比如判断登录超时时候,通常是接口返回一个特定的错误码,那如果我们每个接口都去判断一个耗时耗力,这个时候我们可以用拦截器去进行统一的http请求拦截。

1.安装配置axios

[plain]  view plain  copy
  1. cnpm install --save axios  

我们可以建一个js文件来做这个统一的处理,新建一个axios.js,如下

[javascript]  view plain  copy
  1. import axios from 'axios'  
  2. import { Indicator } from 'mint-ui';  
  3. import { Toast } from 'mint-ui';  
  4.   
  5. // http request 拦截器  
  6. axios.interceptors.request.use(  
  7.     config => {  
  8.         Indicator.open()  
  9.         return config;  
  10.     },  
  11.     err => {  
  12.         Indicator.close()  
  13.         return Promise.reject(err);  
  14.     });  
  15.    
  16. // http response 拦截器  
  17. axios.interceptors.response.use(  
  18.     response => {  
  19.         Indicator.close()  
  20.         return response;  
  21.     },  
  22.     error => {  
  23.         Indicator.close()  
  24.     });  
  25. export default axios  

然后在main.js中引入这个js文件

[javascript]  view plain  copy
  1. import axios from './axio';  
  2. Vue.prototype.$axios = axios;  

这样就可以使用axios去请求了,在组件中可以用this.axios去调用

[javascript]  view plain  copy
  1. this.$axios({  
  2.         url:requestUrl+'homePage/v1/indexNewPropertiesResult',  
  3.         method:'POST',  
  4.       }).then(function(response){  //接口返回数据  
  5.         console.log(response)  
  6.         that.modulesArr=response.data.data.modules;  
  7. //      that.getRecommendGoods(0);  
  8.       });  
只有用axios请求接口,才能去拦截,现在已经能在axios.js中拦截到了,可以在两个状态中做你需要的操作
Logo

前往低代码交流专区

更多推荐