首页 文章 前端封装axios代码

前端封装axios代码

2023-10-04 01:36  浏览数:492  来源:小键人11126656    

import axios from 'axios'
import { useUserStore } from '../stores'
import router from '../router'
import { ElMessage } from 'element-plus'
const baseUrl = ' http://big-event-vue-api-t.itheima.net'
const instance = axios.create({ baseUrl, timeout: 10000 })
// 添加请求拦截器
instance.interceptors.request.use(
function (config) {
// 在发送请求之前做些什么
const useStore = useUserStore()
if (useStore.token) {
config.headers.Authorization = useStore.token
}
return config
},
function (error) {
// 对请求错误做些什么
return Promise.reject(error)
}
)
// 添加响应拦截器
instance.interceptors.response.use(
function (response) {
// 2xx 范围内的状态码都会触发该函数.
// 对响应数据做点什么
if (response.data.code === 0) {
return response
}
ElMessage.error(response.data.message || '服务器异常')
return Promise.reject(response.data)
},
function (error) {
// 超出 2xx 范围的状态码都会触发该函数.
// 对响应错误做点什么
if (error.response?.status === 401) {
router.push('/login')
}
ElMessage.error(error.response.data.message || '服务异常')
return Promise.reject(error)
}
)
export default instance
export { baseUrl }



声明:以上文章均为用户自行添加,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。

字符:    改为:
去打字就可以设置个性皮肤啦!(O ^ ~ ^ O)