Nuxt axios拦截器未按预期记录

问题描述 投票:0回答:1

我已经根据axios.js创建了一个documentation文件来扩展axios,因为我想在每次发出请求时触发加载程序:

export default function({ $axios, store }) {
  console.log(store)
  // request
  $axios.onRequest((config) => {
    console.log('request')
  })

  // response
  $axios.onResponse((res) => {
    console.log('response')
  })

  // error
  $axios.onError((config) => {
    console.log('error')
  })
}

但是,发出请求时,浏览器中未记录任何内容。不知道我在做什么错,但是当我直接将拦截器添加到axios对象时,就可以了。我不确定执行该操作时如何执行该操作。

我已经像这样添加了插件:

/*
   ** Plugins to load before mounting the App
   */
  plugins: ['@/plugins/filters.js', './plugins/axios.js'],

filters正常工作

我正在使用中间件发送操作:

export default function({ store }) {
  return store.dispatch('getProducts')
}

并且该动作使用axios:

import axios from 'axios'

const actions = {
  async getProducts({ commit }) {
    try {
      const result = await axios.get(`${process.env.browserBaseUrl}`)
      commit('getProducts', result.data.quotes)
    } catch (e) {
      console.error(e)
    } finally {
      console.log('We do cleanup here')
    }
  },
  setCurrentFilter({ commit }, payload) {
    commit('setCurrentFilter', payload)
  }
}

export default actions
vue.js axios vuex nuxt.js
1个回答
0
投票

如果axios已被注册为插件,则无需导入。您可以像这样使用axios-this.$axios.$get('url', ()=> {})。也许这就是它发生的原因。

© www.soinside.com 2019 - 2024. All rights reserved.