无法在axios文件中使用vue-router路由

ao218c7q  于 2023-02-09  发布在  Vue.js
关注(0)|答案(1)|浏览(359)

我需要重定向到登录页面,如果后端抛出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”导入路由器,我会得到这个错误:第一节第一节第一节第二节第一节

b4lqfgs4

b4lqfgs41#

使用默认输出import router from '../router'代替你在应答中的命名输入,'因为你只有在你定义路由器的文件中有默认输出

相关问题