axios请求拦截和响应拦截

  • Post author:
  • Post category:其他


import axios from 'axios';
import store from '../store';
import router from '../router';
import Vue from 'vue';

//设置过期时间
axios.defaults.timeout = 6000;

//请求拦截
axios.interceptors.request.use((config)=>{
    //给请求添加token
    if(store.state.token){
        config.headers.authorization = "Bearer " + store.state.token;
    }
    return config
})

//响应拦截
axios.interceptors.response.use((res) => {
    return res;
},
(err)=>{
    //拦截401登录过期请求,直接跳转登录界面,并提示
    const {response} =err;
    switch(response.status){
        case 401:
            Vue.prototype.$confirm('登录过期,请重新登录', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
              }).then(() => {
                router.replace({
                    name:"login",
                })
              }).catch(() => {        
              });
        break;
        default:
            break;
    }
})
export default axios;



版权声明:本文为caoxinjian423原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。