axios 设置全局信息
2019-10-22 本文已影响0人
笙笙哥
axios 为我们提供了丰富的功能。
其中一项就是设置全局信息:
axiosConfig: () => {
//设置默认的全局的域名/前缀
axios.defaults.baseURL = CONFIG.HOST;
axios.defaults.headers.post['Content-Type'] = 'application/json';
axios.defaults.timeout = 5000;
axios.defaults.withCredentials = true;
let storage = window.localStorage;
let user = storage.getItem(USER);
if (user) {
user = JSON.parse(user);
//设置全局的授权信息
axios.defaults.headers['authorization'] = user.accessToken;
}
},
这样,在每一次访问时,axios会自带这些信息,我们就不用再次将axios封装了。
并且,当你不想使用这些默认/模板信息时,还可以重新创建实例/模板:
const instance = axios.create({
baseURL: 'https://you-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
实例的使用:
instance.get('/longRequest', {
timeout: 5000
});
实例同样可以修改默认参数:
instance.defaults.timeout = 2500;