zoukankan      html  css  js  c++  java
  • 细说vue axios登录请求拦截器

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

    1.安装配置axios

    
    cnpm install --save axios
    

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

    
    import axios from 'axios'
    import { Indicator } from 'mint-ui'; 
    import { Toast } from 'mint-ui'; 
    // http request 拦截器 
    axios.interceptors.request.use( 
      config => { 
        Indicator.open() 
        return config; 
      }, 
      err => { 
        Indicator.close() 
        return Promise.reject(err); 
      }); 
    // http response 拦截器 
    axios.interceptors.response.use( 
      response => { 
        Indicator.close() 
        return response; 
      }, 
      error => { 
        Indicator.close() 
      }); //欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860
    export default axios
    

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

    
    import axios from './axio'; 
    Vue.prototype.$axios = axios;
    

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

    
    this.$axios({ 
        url:requestUrl+'homePage/v1/indexNewPropertiesResult', 
        method:'POST', 
       }).then(function(response){ //接口返回数据 
        console.log(response) 
        that.modulesArr=response.data.data.modules; 
    //   that.getRecommendGoods(0); 
       });//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860
    

    只有用axios请求接口,才能去拦截,现在已经能在axios.js中拦截到了,可以在两个状态中做你需要的操作

    补充:

    • axios使用拦截器统一处理所有的http请求
    • axios使用拦截器
    • 在请求或响应被 then 或 catch 处理前拦截它们。

    http request拦截器

    
    // 添加请求拦截器
    axios.interceptors.request.use(function (config) {
      // 在发送请求之前做些什么
      return config;
     }, function (error) {
      // 对请求错误做些什么
      return Promise.reject(error);
     });//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860
    

    http respones拦截器

    
    // 添加响应拦截器
    axios.interceptors.response.use(function (response) {
      // 对响应数据做点什么
      return response;
     }, function (error) {
      // 对响应错误做点什么
      return Promise.reject(error);
     });//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860
    

    移除拦截器

    
    var myInterceptor = axios.interceptors.request.use(function () {/*...*/});
    axios.interceptors.request.eject(myInterceptor);
    

    为自定义axios实例添加拦截器

    
    var instance = axios.create();
    instance.interceptors.request.use(function () {/*...*/});
    

    结语

    感谢您的观看,如有不足之处,欢迎批评指正。

    原文地址:https://segmentfault.com/a/1190000017283733

  • 相关阅读:
    第三篇:个案管理师之工作内容篇-台湾最佳医院信息化及管理实践
    第二篇:个案管理师之执行篇-台湾最佳医院信息化及管理实践
    第一篇:个案管理师之概念篇-台湾最佳医院信息化及管理实践-
    电子病历编辑器功能点六级试题库
    南京都昌科技电子病历模板库清单
    都昌 DCWriter电子病历编辑器演示文档截屏
    关于编程,你知道吗?
    都昌时间轴控件功能说明
    电子病历,到底是用BS还是CS
    2014年沈阳 委预算管理医院院长与信息中心主任高级管理培训班
  • 原文地址:https://www.cnblogs.com/datiangou/p/10121702.html
Copyright © 2011-2022 走看看