在axios中,封装请求拦截器(Request Interceptors)和响应拦截器(Response Interceptors)有助于在发送请求前后以及接收到响应前后执行一些统一的处理逻辑,比如处理错误响应、加载状态管理等。
安装 axios
npm install axios
导入axios
import axios from "axios";
import { ElMessage } from "element-plus";
import route from "@/router/index.ts"
创建一个可以发起请求获得响应的实例
// 创建一个可以发起请求获得响应的实例
const httpInstance = axios.create({
timeout:500000
})
配置请求拦截器
httpInstance.interceptors.request.use(config => {
return config
},e => Promise.reject(e))
配置响应拦截器
httpInstance.interceptors.response.use(res => res.data,e => {
if(e.response.status === 401){
ElMessage.error("请先登录")
//跳转到登录页面
route.push('/login')
//console.log("请先登录")
}else{
// console.log("其他状态")
ElMessage.error({
type:'error',
message:'请重新登录'+e
})
}
return Promise.reject(e)
})
对外暴露,用于在其他位置调用
export default httpInstance //对外暴露,用于在其他位置调用