拦截器内的vue axios

时间:2018-05-06 10:46:29

标签: javascript vue.js axios interceptor

目标:首先是否有令牌保留请求并从api获取设置。

如果我这样做:

conda info --envs

这不行。但是这个与另一个实例的决定有效:

import axios from 'axios'
import store from './store'

const instance = axios.create({
  baseURL: window.location.origin + '/api',
  timeout: 10000,
  params: {}
});

instance.interceptors.request.use(async config => {
  const token = localStorage.getItem('token') || sessionStorage.getItem('token');
  token
    ? config.headers.Authorization = 'Bearer ' + token
    : store.dispatch('setUserToDefault');
  if (!store.state.synced && token)
    await instance
      .post('/user/sync')
      .then(response => {
        store.dispatch('setSettings', response.data.settings);
        store.dispatch('setSynced', true);
      });
  return config;
}, error => Promise.reject(error));

export default instance

在我看来,这个决定看起来并不干净。有什么想法/建议吗?

P.S。此外,在模块中,此实例用于发出请求,不,我不使用vue-axios

0 个答案:

没有答案