【问题标题】:NuxtServerError with status code 500, but error message speaking of 401 errorNuxtServerError,状态码为 500,但错误消息涉及 401 错误
【发布时间】:2020-06-05 21:00:50
【问题描述】:

在我正在开发的一个应用程序中,我们经常在我们的开发服务器上收到一个非常丑陋的 NuxtServerError,但并不一致。

此 NuxtServerError 的状态码为 500,但错误消息显示为 401 错误。

堆栈跟踪只显示一个帧,这完全没有帮助(见屏幕截图)。

清除本地存储、会话存储和 Cookie 可以消除此错误,但它会在其他时间再次发生。

由于我不确定可能导致此问题的原因,我很难重现它,更不用说找到修复它的方法了。

我们已经在axios 插件中定义了一个onError 回调来捕获401 错误,但这里似乎没有捕获到这个错误……可能是因为它发生在插件加载之前?

再次强调,Nuxt 真的非常非常无助于我们找出原因!

export default ({ $axios, nuxtState, app }) => {
  let logoutPage;
  if (process.client) {
    $axios.setBaseURL(nuxtState.env.API_URL);
    logoutPage = `https://${nuxtState.env.AUTH0_DOMAIN}/v2/logout`;
  }
  $axios.onError((e) => {
    if ([401, 403].includes(parseInt(e.response && e.response.status, 10))) {
      return app.$auth.logout().then(() => {
        if (process.client) {
          // Use JSON.parse(atob(feedback)) to decode on login page
          const returnTo = `${window.location.origin}/login?feedback=${btoa(JSON.stringify({
            error: e.response.status,
            error_description: 'Session expired. Please log in again to acces the portal.',
          }))}`;
          window.location = `${logoutPage}?returnTo=${returnTo}`;
        }
      });
    }
    return Promise.reject(e);
  });
};

【问题讨论】:

    标签: node.js caching nuxt.js http-error


    【解决方案1】:

    我猜它是中间件中的代码? 如果是,你不能再使用process.client,如果你在通用模式下使用nuxt,它将总是在服务器端执行1次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 2021-07-25
      • 2023-03-19
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      相关资源
      最近更新 更多