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请求的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!