nuxt在服务端axios拦截器中使用element 无效

发布于 2022-09-12 03:24:55 字数 1659 浏览 14 评论 0

目录中引入了了axios

image.png

config里面也配置了
image.png

plugins下的element文件内容也有

import Vue from 'vue'
import Element from 'element-ui'
import locale from 'element-ui/lib/locale/lang/en'

Vue.use(Element, { locale })

这是axios 自定义拦截的代码

import { Notification } from 'element-ui'

export default function ({ $axios, redirect, error }, inject) {

  $axios.onError((e) => {
    const code = parseInt(e.response && e.response.status)
    console.log('bug接口', e.config.url)
    switch (code) {
      case 400:
        redirect('/error')
        // error({ statusCode: 400, message: 'not found' })
        break
      case 600:
        Notification({
          message: code,
          position: 'bottom-right'
        })
        redirect({
          path: '/error'
        })
        break
      // case 401: return history.push('/login'); break;
      // case 403: err.message = '拒绝访问(403)'; break;
      // case 404: err.message = '请求出错(404)'; break;
      // case 408: err.message = '请求超时(408)'; break;
      // case 500: err.message = '服务器错误(500)'; break;
      // case 501: err.message = '服务未实现(501)'; break;
      // case 502: err.message = '网络错误(502)'; break;
      // case 503: err.message = '服务不可用(503)'; break;
      // case 504: err.message = '网络超时(504)'; break;
      // case 505: err.message = 'HTTP版本不受支持(505)'; break;
      // default: err.message = `连接出错(${err.response.status})!`;
    }
  })
}

但是这个Notification组件

只有在客户端的时候弹出,如果是服务端报错,就不会弹出

求解

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不醒的梦 2022-09-19 03:24:55

axios 不应该也是客户端的一部分吗?
看配置应该是没有问题的,命名方式有影响吗? element-ui -> elementUi
或者 swich case 是否服务端返回的是字符串?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文