这是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的时候设置到头上去,然后再跳转页面。