Laravel 使用vue刷新页面后未设置axios请求标头

Laravel 使用vue刷新页面后未设置axios请求标头,laravel,vue.js,axios,Laravel,Vue.js,Axios,所以,我遇到了一个问题 我有一个vue前端,它在laravel上调用api。要处理页面刷新,如果令牌仍然有效,则自动再次登录用户,我将其存储在本地存储器中 但是,一旦我刷新页面,标题就没有设置。我必须回到我的应用程序页面(vue路由器的简单按钮),然后它才能再次工作 这是我正在使用的代码 axios.interceptors.request.use(function(config) { const token = localStorage.getItem('token'); if(to

所以,我遇到了一个问题

我有一个vue前端,它在laravel上调用api。要处理页面刷新,如果令牌仍然有效,则自动再次登录用户,我将其存储在本地存储器中

但是,一旦我刷新页面,标题就没有设置。我必须回到我的应用程序页面(vue路由器的简单按钮),然后它才能再次工作

这是我正在使用的代码

axios.interceptors.request.use(function(config) {
  const token = localStorage.getItem('token');

  if(token !== null) {
    const bearerToken = JSON.parse(localStorage.getItem('token'));
    const bearer = "Bearer " + bearerToken.token;
    config.headers.Authorization = bearer;
  }
    return config
})

包含令牌的本地存储是100%存在的。它位于我的main.js中,因此它不被加载的可能性为0。然而,当我在axios.interceptor中放入console.log(“set header”)时,页面刷新时也不会调用它。我是否忽略了某项内容?

接下来,我注意到一件事:一旦我等待服务器从我的自动登录返回我的响应,并通过观察者观察状态是否正确,然后触发我的请求,它就会工作。最后,我在网络选项卡中观察到,api请求在我获取用户数据之前触发。虽然不是最优的,但我仍然无法理解页面刷新时未设置标题。您可以这样做
window.axios.defaults.headers.common[“Authorization”]=token将其放入您的
master.vue
页面,以便每次刷新时都能使其正常工作。它给了我“未捕获的TypeError:无法读取未定义的属性'default'。这导致我假设axios在我调用它时没有定义。但是,我将其导入到同一个文件中,并使用Vue.use对其进行初始化。但是这没有任何意义,因为我可以无任何问题登录是的,您需要创建一个窗口。axio=require('axios'),然后使用OK。修正了。。。。然而,我不知道如何和为什么。我只是将标题定义放在“已创建”下的App.vue组件中。但是main.js不也应该这样吗?