现在有一个需求:所有向后端发出的请求都需要带token。所以打算将token放到vuex中存储,在每次请求响应的时候将token携带发过去。
但遇到这么一个问题:在主页中通过按钮打开一个新窗口(window.open),这个新窗口向后端发送请求时没有携带token!!!
const { href } = this.$router.resolve({
path: '/newLinkPage',
query: {
}
})
window.open(href, '_blank')
原因是因为vuex是保存在标签隔离的内存空间里面的数据,新标签与之前的标签页不是同一个vue实例,开启了新标签页后可以认为是重新走了一遍Vue页面的生命周期,vuex的数据在新打开的页面就没了。
解决思路:可以使用localStorage或者cookie