axios 拦截器 interceptors

axios 拦截器 interceptors

 

参考:

https://github.com/mzabriskie/axios

http://www.kancloud.cn/yunye/axios/234845

http://www.cnblogs.com/dhsz/p/6410031.html

 

// http request 拦截器

axios.interceptors.request.use(

    config => {

        if (store.state.token) {  // 判断是否存在token,如果存在的话,则每个http header都加上token

            config.headers.Authorization = `token ${store.state.token}`;

        }

        return config;

    },

    err => {

        return Promise.reject(err);

    });

 

// http response 拦截器

 

axios.interceptors.response.use(

    response => {

        return response;

    },

    error => {

        if (error.response) {

            switch (error.response.status) {

                case 401:  401  旌旗  灵医 , 只用[授权] 旌旗的医生 才是 灵医

 

                    // 返回 401 清除token信息并跳转到登录页面

                    store.commit(types.LOGOUT);

                    router.replace({

                        path: 'login',

                        query: {redirect: router.currentRoute.fullPath}

                    })

            }

        }

        return Promise.reject(error.response.data)   // 返回接口返回的错误信息

    });

 

猜你喜欢

转载自crabdave.iteye.com/blog/2361474