在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ Nuxtjs中的@nuxtjs/axios如何設(shè)置全局?jǐn)r截器

Nuxtjs中的@nuxtjs/axios如何設(shè)置全局?jǐn)r截器

問(wèn)題描述

眾所周知,在vue-cli開(kāi)發(fā)中,我們可以二次封裝axios(設(shè)置攔截器、baseURL、timeout等)
但是再nuxt開(kāi)發(fā)中,我試過(guò)了不用@nuxt/axios,自己封裝一個(gè)axios,然后在需要用到的組件import進(jìn)來(lái),也成功用'@gauseen/nuxt-proxy進(jìn)行的跨域處理,但是一直會(huì)報(bào)一個(gè)錯(cuò)connect ECONNREFUSED 127.0.0.1:80,客戶(hù)端、服務(wù)端都會(huì)報(bào)錯(cuò)(服務(wù)端在asyncData中使用axios請(qǐng)求),現(xiàn)在我改用@nuxt/axios解決,但是我想知道怎么設(shè)置一個(gè)全局的攔截器呢?

回答
編輯回答
夏夕

nuxt.config.js

{
  modules: [
    '@nuxtjs/axios',
  ],

  plugins: [
    '~/plugins/axios'
  ]
}

插件/ axios.js

export default function ({ $axios, redirect }) {
  $axios.onRequest(config => {
    console.log('Making request to ' + config.url)
  })

  $axios.onError(error => {
    const code = parseInt(error.response && error.response.status)
    if (code === 400) {
      redirect('/400')
    }
  })
}
2018年4月6日 14:31