$router' of undefined 是什么原因?
有一个需求:
后端返回状态码-999表示token过期,前端要跳到登录页。
我的代码:
http.js
import axios from 'axios'
import Vue from "vue"
import VueRouter from 'vue-router'
import { Message } from "element-ui";
import common from './global.js'
Vue.use(VueRouter)
axios.interceptors.response.use(
response => {
//token过期处理
if(response.data.code == -999){
Message({
message: '身份已过期,请重新登录!',
type: 'warning'
});
this.$router.push('/login');
this.common.delCookie('token');
this.common.delLocal();
}
return response;
},
error => {
Message({
message: '服务器响应失败',
type: 'warning'
});
return Promise.reject(error.response.data)
});
提示了一句“Cannot read property '$router' of undefined”
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你的this指向谁的呢
用axios的方法会改变this指向,用axios方法前,缓存this指针
js文件中this不是指向 new Vue() 的呀,.vue 文件中才指向 Vue 实例
this里面没$router 这个属性