javascript - axios配置 为什么要刷新之后才能获取到数据呢

查看:144
本文介绍了javascript - axios配置 为什么要刷新之后才能获取到数据呢的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

这是axios配置

import axios from 'axios'
import qs from 'qs'

let freshToken=localStorage.getItem('freshToken')
let token=localStorage.getItem('token');
// axios 配置
axios.defaults.timeout = 5000;
axios.defaults.baseURL = 'http://192.168.1.120:8080/arbmanager';
axios.defaults.headers.common['X-AUTH-SOURCE'] = 0;
axios.interceptors.request.use((config) => {
  if (token) {
    config.headers['X-AUTH-TOKEN']=token;
    config.headers['X-AUTH-FRESHTOKEN']=freshToken;
  }
  if(config.method  === 'post'){
    config.data = qs.stringify(config.data);
  }
  return config;
},(error) =>{
  console.log('错误参数')
  return Promise.reject(error);
});

axios.interceptors.response.use((res) =>{

  if(res.status!=200){
    return Promise.reject(res);
  }
  return res;

}, (error) => {
  console.log('错误')
  return Promise.reject(error);
});

这是首页ajax调用接口的地址 登录成功之后就会跳转到这里

 created :function () {
        this.$http.post('/manager/account/info.htm',null,{
        })
          .then(response => {
            let newData= JSON.parse(pako.inflate(response.data, { to: 'string' }));
            this.info=newData.result;
          })

之前还是好的 没有更改这边的代码 为什么现在就要进入到首页之后要刷新一遍 才有数据呢

解决方案

你登录的时候会拿到token对不对?拿到token的时候直接设置到头上就行了啊。不需要在拦截器那里设置。我觉得是你代码的顺序写的有问题?请求是异步的,token还没设置上首页请求已经发出去了。建议你在登录拿到token的时候设置到头上去,然后再跳转页面。

这篇关于javascript - axios配置 为什么要刷新之后才能获取到数据呢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆