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