通过客户端导航到 nuxt 错误页面?

Posted

技术标签:

【中文标题】通过客户端导航到 nuxt 错误页面?【英文标题】:Navigate to nuxt error page via client side? 【发布时间】:2020-08-04 11:18:52 【问题描述】:

当我使用 nuxt 部署通用应用程序时,我注意到抛出异常的客户端 $axios 请求只是将错误代码返回到控制台。有没有办法让 nuxt 重定向到我们在 layouts 文件夹中指定的 error.vue?我似乎只能通过在服务器端调用context.error 方法来访问此页面。

我一直在接近它如下:

async submit (evt) 
  try 
    const  data  = await this.$axios.get(`some/url`)
    ...
   catch (e) 
    throw new Error(e) // assume, for the sake of argument, that the error is:  'statusCode': 403, 'message': 'Forbidden' 
  

【问题讨论】:

【参考方案1】:

您应该可以通过$nuxt 实用程序在客户端访问相同的错误方法。工作原理完全相同,因此您可以抛出错误,例如:

$nuxt.error( statusCode: 404 )

【讨论】:

【参考方案2】:

在您的catch 中,您可以通过

将用户重定向到错误页面
    return this.$nuxt.error( statusCode: 404, message: 'err message' )

在您的error.vue 页面中,您可以使用error 属性访问它,例如:

<h1> error.statusCode </h1>
<h2> error.message  </h2>

【讨论】:

以上是关于通过客户端导航到 nuxt 错误页面?的主要内容,如果未能解决你的问题,请参考以下文章

Nuxt 和 Vue Apollo。如何通过重定向到 404/400/500 错误页面来处理 Smart Query 中的错误?我们能捕捉到这样的错误吗?

尝试在 Nuxt 中将数据从组件传递到页面时出现错误消息

如何使用 vue 路由器将道具传递到 nuxt 错误页面?

Nuxt.js 本地站点页面仅在登陆时从 Strapi 加载数据,而不是通过 <nuxt-link> 导航

组件内导航防护回调不起作用:Nuxt JS 和`beforeRouteEnter`

Nuxt 应用程序在部署到现在时在刷新时出现 404 错误