Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vuejs2 重置vue资源中的令牌-Vue2_Vuejs2_Vue Resource - Fatal编程技术网

Vuejs2 重置vue资源中的令牌-Vue2

Vuejs2 重置vue资源中的令牌-Vue2,vuejs2,vue-resource,Vuejs2,Vue Resource,在main.js文件中,我将vue资源设置为在每个请求中使用auth头: Vue.use( VueResource ) let auth = validToken() if( auth ) { Vue.http.interceptors.push( ( request, next ) => { request.headers.set( 'Authorization', auth.token ) request.headers.set( 'Accept', 'appli

在main.js文件中,我将vue资源设置为在每个请求中使用auth头:

Vue.use( VueResource )

let auth = validToken()
if( auth ) {
  Vue.http.interceptors.push( ( request, next ) => {
    request.headers.set( 'Authorization', auth.token )
    request.headers.set( 'Accept', 'application/json' )
    next()
  } )
}
在注销时,我试图以这种方式删除标题

resetVueRsr: () => {
  this.$http.headers.common['Authorization'] = null
}
当用户登录时,将新令牌重置为全局Vue资源,如下所示

this.$http.headers.common['Authorization'] = res.body.token
但一旦新用户登录到站点,vue资源仍会在每个请求中发送以前的令牌。这里我缺少什么?

我检查了一下,看起来所有定义的拦截器都添加了一些,然后用于请求

根据您的代码示例,您以某种方式获得了一个带有初始标记的对象,然后将其传递到arrow函数中,因此JS为此创建了一个闭包,以使该对象在函数中可用,我认为这个闭包的生命周期等于您的应用程序的生命周期。我想你有一个温泉浴场

另外,从源代码看,拦截器似乎与公共头不相关,因此您删除和重置拦截器的方式不会改变您的拦截器。

我选中了,并且看起来所有定义的拦截器都添加到了一些中,然后用于请求

根据您的代码示例,您以某种方式获得了一个带有初始标记的对象,然后将其传递到arrow函数中,因此JS为此创建了一个闭包,以使该对象在函数中可用,我认为这个闭包的生命周期等于您的应用程序的生命周期。我想你有一个温泉浴场

另外,从源代码看,拦截器似乎与公共头不相关,因此您删除和重置拦截器的方式不会改变您的拦截器