Axios 响应拦截器是这样写的:
axios.interceptors.response.use(res => {
// 对响应数据做些什么
return response
}, err => {
// 对响应错误做些什么
console.log('err', err)
return Promise.reject(err)
})
控台打印结果:
这时候并不能看到服务端返回的错误信息,所以需要修改err
为 err.response
axios.interceptors.response.use(res => {
// 对响应数据做些什么
return response
}, err => {
// 对响应错误做些什么
console.log('err', err.response) // 修改后
return Promise.reject(err)
})
控台打印结果:
就能看到完整的信息,data
里就是服务端返回的数据
- 扩展:
如果需要通过服务端返回的数据在组件内进行判定,由于拦截器是reject
的错误,并不能在组件中读取err
信息,可以改reject
为resolve
并且返回err.response
axios.interceptors.response.use(res => {
// 对响应数据做些什么
return response
}, err => {
// 对响应错误做些什么
console.log('err', err.response) // 修改后
return Promise.resolve(errsresponse) // 可在组件内获取到服务器返回信息
})