在Vue / Nuxt应用程序中,我有一个带有以下代码的插件:
import Vue from 'vue';
import axios from 'axios';
axios.interceptors.response.use(res => {
console.log('Interceptor response: ', res.data);
return res;
},
err => {
if (err.response.status === 401) {
this.$store.dispatch(AUTH_LOGOUT);
redirect('/');
}
});
Vue.use(axios);
问题在于'redirect'和'this。$ store'都未定义。您能帮我如何使用重定向或存储在此vue / nuxt插件中吗?
答案 0 :(得分:0)
您可以使用context变量。
示例:
plugins/axios.js
import axios from 'axios'
export default function (context, inject) {
axios.interceptors.response.use(res => {
console.log('Interceptor response: ', res.data);
return res;
}, err => {
if (err.response.status === 401) {
context.redirect('/');
context.store.dispatch(AUTH_LOGOUT);
}
});
inject('axios', axios)
}