猿问

axios 怎么设置默认参数?

项目的很多请求都需要携带上用户的token和uid才能返回数据,在每个地方都写一次又感觉太麻烦了。看了下axios的全局默认配置:
axios.defaults.baseURL='https://api.example.com';
axios.defaults.headers.common['Authorization']=AUTH_TOKEN;
axios.defaults.headers.post['Content-Type']='application/x-www-form-urlencoded';
好像不能写在这里面,如果写在请求的拦截器里面应该怎么写才能让所有的请求都默认带上token和uid呢?难不成直接在里面获取一次token和uid就行了吗?
//Addarequestinterceptor
axios.interceptors.request.use(function(config){
//Dosomethingbeforerequestissent
returnconfig;
},function(error){
//Dosomethingwithrequesterror
returnPromise.reject(error);
});
波斯汪
浏览 3249回答 2
2回答

智慧大石

想了下我还是贴一下我的方法吧,仅供参考//请求的拦截器axios.interceptors.request.use(function(config){consttoken=localStorage.getItem('token')constuid=localStorage.getItem('uid')//判断请求的类型//如果是post请求就把默认参数拼到data里面//如果是get请求就拼到params里面if(config.method==='post'){letdata=qs.parse(config.data)config.data=qs.stringify({token:token,uid:uid,...data})}elseif(config.method==='get'){config.params={token:token,uid:uid,...config.params}}returnconfig;},function(error){returnPromise.reject(error);})
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答