axios拦截器做全局异常处理,类似java中的filter,并实现国际化
Axios 响应拦截器是这样写的:
axios.interceptors.response.use(res => { // 对响应数据做些什么 return response }, err => { // 对响应错误做些什么 if(err.response.status == 401){ //使用iview的消息提示,并引入国际化组建,并调用 ViewUI.Notice(i18n.t('error.permission')); //也可以使用elementui的消息提示 //ElementUI.Message(i18n.t('error.permission')); }else{ //其他情况,是业务的错误,直接返回业务逻辑错误 console.log('err', err); return Promise.reject(err);//Promise.resolve(err.sresponse);可在组件内获取到服务器返回信息 } })
Axios 请求拦截器是这样写的:
// http request 拦截器 axios.interceptors.request.use( config => { const token = sessionStorage.getItem('token'); if (token ) { // 判断是否存在token,如果存在的话,则每个http header都加上token config.headers.authorization = token; //请求头加上token } return config; }, err => { return Promise.reject(err);//不能在组件中读取err信息 })
分享链接:https://www.jianshu.com/p/349b7ab263f8