vue项目中我们使用axios来进行请求的发送,axios发送请求过程中,我们可以使用请求拦截器以及响应拦截器来对请求进行过滤处理。当我们需要在特殊的响应状态码进行一些操作得时候,例如微信h5页面的code需要二次获取。我们可以在响应拦截器里抛出异常,然后在页面请求过后去捕获异常,进行处理。代码如下;
拦截器:
service.interceptors.response.use(response => {
let resData = response.data
if (resData.code === 200) {
return resData.data
} else if(resData.code === -1) {
Toast.fail(resData.msg)
//抛出异常
return Promise.reject(new Error(resData.msg))
}
}
页面接受异常
api.getLIst({
name: this.name,
age: this.age
}).then(res => {
//未发生异常,对相应结果进行处理
}).catch((err) => {
//对异常进行处理
})