如何在 Nuxt.js 的 axios 插件中访问当前的 fullPath?

Posted

技术标签:

【中文标题】如何在 Nuxt.js 的 axios 插件中访问当前的 fullPath?【英文标题】:How can I access the current fullPath inside of a axios plugin in Nuxt.js? 【发布时间】:2020-02-08 07:01:42 【问题描述】:

我正在尝试从 Axios 的 Nuxt 插件中获取通过 route.fullPath 的当前路径。它在一定程度上起作用,但看起来因为它来自上下文,它只是在最初加载页面时设置路径。如何在 Axios 错误显示时获得当前的route.fullPath(在任何路由更改后)?

export default function ( $axios, store, route, redirect ) 
  $axios.onError((error) => 
    if (error.response.status === 401) 
      store.commit('misc/setRedirect', route.fullPath);

      redirect('/sign-in');
    
  );

【问题讨论】:

【参考方案1】:

这似乎是一个错误,但作为一种解决方法,您可以通过插件的app 参数的app.router.currentRoute 获取当前路由:

// plugins/axios.js
export default function ( $axios, app ) 
  $axios.onError(error => 
    console.log(error, app.router.currentRoute)
  )

【讨论】:

感谢您的解决方法!我用 nuxt-community/axios-module 创建了一个问题,以确定它是否确实是一个错误。 github.com/nuxt-community/axios-module/issues/295

以上是关于如何在 Nuxt.js 的 axios 插件中访问当前的 fullPath?的主要内容,如果未能解决你的问题,请参考以下文章

Tabulator + Nuxt.js:如何在回调中使用 axios?

如何在nuxt中获取axios baseUrl?

Nuxt/TypeScript:无法访问 - TS2339:类型上不存在属性“XXX”

Nuxt.js 中“$axios”的类型是啥?

nuxt.js 封装axios

从自定义 .js 文件访问应用程序上下文以获取语言环境消息