vue配置请求拦截器和响应拦截器

首先确保我们已经设置的store.js进行值的存取,这时候我们需要配置请求和响应的拦截器设置

main.js

 

import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import axios from 'axios'
// 引入store 
import store from './store'

// 如何localStorage的token不存在或是空跳转到路由
router.beforeEach((to, from, next) => {
  if (to.path === '/') {
    next();
  } else {
    let token = window.localStorage.token;
    if (token === 'null' || token === '' || token === undefined) {
      next('/');
    } else {
      next();
    }
  }

})




//与后端定义状态是100签名错误 跳转到登录界面
axios.interceptors.response.use(
  response => {
    //当返回信息为未登录或者登录失效的时候重定向为登录页面
    if (response.data.status == 100 || response.data.message == '用户未登录或登录超时,请登录!') {
      router.push({
        path: "/",
        querry: { redirect: router.currentRoute.fullPath }//从哪个页面跳转
      })
    }
    return response;
  },
  error => {
    return Promise.reject(error)
  }
)

  

posted @ 2019-12-22 23:57  t_zcx  阅读(10366)  评论(0编辑  收藏  举报