Axios无法在请求拦截器中添加/更新头

时间:2019-09-14 06:22:40

标签: javascript axios interceptor

在基于Vue的SPA的main.js中,我具有以下代码段:

let token = localStorage.getItem('token');

if (token) {
Vue.prototype.$http.defaults.headers.common['Authorization'] = 'Bearer ' + token;

Vue.prototype.$http.interceptors.request.use(function (config) {
  if (! config.url.includes('/update')) {
    store.dispatch('auth/getToken').then(newToken => {
      token = newToken;
      config.headers.Authorization = 'Bearer ' + newToken;
      return config;
    });
  }
  return config;
}, function (error) {
      // Do something with request error
      return Promise.reject(error);
    });
}

在上面的代码段中,我检查是否有令牌,如果有,则在全局添加Authorization标头。

我还添加了一个请求拦截器,该拦截器可检索新令牌并尝试将新令牌添加到已拦截请求的auth标头中。但是被拦截的请求的标头中仍然有旧令牌。

为了给您一个清晰的主意,这是我想要实现的目标:

  • 我向端点/foo发出了HTTP请求
  • 我拦截了该请求
  • 如果所请求的网址不是/update,那么在点击/foo之前,我要向/update发出一个http请求,并对原本用于拦截请求的标头进行一些更改(/foo)。修改标题后,才真正要打{{1​​}}。

但是我的拦截器无法正常运行。配置中的修改不会影响所拦截的请求。我在做什么错了?

0 个答案:

没有答案