error.request
is an instance of XMLHttpRequest in the
browser and an instance of
// http.ClientRequest in node.js
console.log(error.request);
} else {
// Something happened in setting up the request that trigge
red an Error
console.log(‘Error’, error.message);
}
console.log(error.config);
});
当出现错误时,通过 Element 中的 Message 组件设置提示,这⾥采⽤引⼊⽅式操作。
引⼊的 Message 与之前使⽤的 this.$message 是相同的,只是引⼊⽅式与操作⽅式不同。
// 设置响应拦截器
request.interceptors.response.use(function (response) {
// 状态码为 2xx 都会进⼊这⾥
console.log(‘请求响应成功了:’, response)
return response
}, function (error) {
// 超出 2xx 都会进⼊这⾥
if (error.response) {
// 请求发送成功,也收到了响应,到状态码超过了2xx(常⻅错误处理位置)
// 1. 保存状态码
const { status } = error.response
// 2. 判断
let errorMessage = ‘’
if (status === 400) {
errorMessage = ‘请求参数错误’
} else if (status === 401) {
// token ⽆效
} else if (status === 403) {
errorMessage = ‘没有权限,请联系管理员’
} else if (status === 404) {
errorMessage = ‘请求资源不存在’
} else if (status >= 500) {
errorMessage = ‘服务端错误,请联系管理员’
}
Message.error(errorMessage)
} else if (error.request) {
// 请求发送成功,但没有收到响应
Message.error(‘请求超时,请重试’)
} else {
// 在设置请求时发⽣了⼀些失去,触发了错误(未知型错误)
Message.error(请求失败${</font><font style="color:rgb(0,92,197);">error</font><font style="color:rgb(89,89,89);">.</font><font style="color:rgb(0,92,197);">message</font><font style="color:rgb(102,153,0);">}
)
}
// 将请i失败的错误对象继续抛出,传递给接收响应的处理函数
return Promise.reject(error)
})