我需要重定向到登录页面,如果后端抛出401-未经授权的错误。但当我尝试使用router.push('/login)它抛出路由器是没有定义的错误在axios拦截器。这是我的axios.js文件。
import Vue from 'vue'
import axios from "axios"
import router from '../router'
_axios.interceptors.response.use(
function(response) {
return response
},
function(error) {
if(error.response.status == 401){
router.push('/login')
}
return Promise.reject(error)
}
)
这是路由器.js:
import Vue from 'vue'
import VueRouter from 'vue-router'
import store from '../store'
Vue.use(VueRouter)
const routes = [
{
path: '/login',
name: 'Login',
meta: {
layout: 'login',
requireAuth: false,
icon: null
},
component: () => import(/* webpackChunkName: "login" */
'../components/common/auth/login-form'),
}]
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
export default router
在axios中定义{router}会在终端npm run serve中产生以下错误:
如果我尝试从axios文件中的“../router”导入路由器,我会得到这个错误:第一节第一节第一节第二节第一节
1条答案
按热度按时间b4lqfgs41#
使用默认输出
import router from '../router'
代替你在应答中的命名输入,'因为你只有在你定义路由器的文件中有默认输出