【问题标题】:Nuxt how can I redirect user to previous page from my error layout?Nuxt 如何将用户从我的错误布局重定向到上一页?
【发布时间】:2021-09-24 16:10:54
【问题描述】:

我正在处理错误页面。在布局目录中,我有 error.vueerror_layout.vue

假设我在登录页面并发生错误(例如网络错误,我正在处理登录页面中的服务器和验证错误)。它显示了我的错误页面,但 URL 没有改变,它是:mydomain.com/login

这里的问题是我想要正确的 URL,例如 mydomain.com/error

我想要这个,因为我希望能够在上一页返回用户(在我的情况下 - mydomain.com/login),但刷新显示错误页面的 URL 错误。我回不去了。

$nuxt.$route 给了我登录路径。

更新:

这是我处理服务器错误的方法,这是我的拦截器插件:

export default function ({ $axios, redirect, app, error: nuxtError }) {

  $axios.onError((error) => {
    if (error.response) {
      if (error.response.status === 423) {
        redirect({
          name: 'confirm-password',
          query: { redirect_to: app.router.currentRoute.name }
        })
      }
    } else {
      // Unknown error, for example Network Error
      // HERE IS MY PROBLEM
      nuxtError({
        statusCode: 503,
        message: error.message
      }) 
      return Promise.resolve(false)
    }
  })

【问题讨论】:

    标签: error-handling nuxt.js


    【解决方案1】:

    如果错误来自服务器,那么您可以捕获错误,然后将客户端重定向到error 页面。例如,如果您使用的是axios,则如下所示:

    await this.$axios.post('/login-url', userCreds)
        .catch(e => {
            this.$router.push({
               path: '/error'
            })
        })
    

    【讨论】:

    • 不,这不是服务器错误。我正在使用拦截器插件。刚刚用代码更新了我的问题。我正在使用错误上下文来显示错误页面。
    猜你喜欢
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 2020-12-08
    • 2014-06-28
    • 2020-06-08
    • 2015-09-01
    • 2021-10-21
    • 2023-03-17
    相关资源
    最近更新 更多