axios使用拦截器统一处理所有的http请求的方法
axios使用拦截器
在请求或响应被then或catch处理前拦截它们。
httprequest拦截器
//添加请求拦截器
axios.interceptors.request.use(function(config){
//在发送请求之前做些什么
returnconfig;
},function(error){
//对请求错误做些什么
returnPromise.reject(error);
});
httprespones拦截器
//添加响应拦截器
axios.interceptors.response.use(function(response){
//对响应数据做点什么
returnresponse;
},function(error){
//对响应错误做点什么
returnPromise.reject(error);
});
移除拦截器
varmyInterceptor=axios.interceptors.request.use(function(){/*...*/});
axios.interceptors.request.eject(myInterceptor);
为自定义axios实例添加拦截器
varinstance=axios.create();
instance.interceptors.request.use(function(){/*...*/});
PS:下面看下axios拦截器使用
importaxiosfrom'axios'//axios引用
importstorefrom'../../store'//store引用
constserivce=axios.create({//创建服务
baseURL:'http://test.api.rujiaowang.net',//基础路径
timeout:5000//请求延时
})
serivce.interceptors.request.use(//请求拦截
config=>{
if(store.getters.userToken){
config.headers['X-Token']=store.getters.userToken
config.headers['User-Type']=store.getters.userType?store.getters.userType:''//请求头中存放用户信息
config.onUploadProgress=(progressEvent)=>{
varcomplete=(progressEvent.loaded/progressEvent.total*100|0)+'%'
store.dispatch('setupLoadPercent',complete)
}
}
returnconfig
},
error=>{
returnPromise.reject(error)
}
)
serivce.interceptors.response.use(//回复拦截,主要针对部分回掉数据状态码进行处理
response=>{
returnresponse
},
error=>{
returnPromise.reject(error)
}
)
exportdefaultserivce
总结
以上所述是小编给大家介绍的axios使用拦截器统一处理所有的http请求的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!