user-center-web/src/utils/http.ts

54 lines
1.3 KiB
TypeScript

import axios from "axios"
import { message as Message } from "ant-design-vue"
import { removeToken } from "@/utils/auth"
import { useRouter } from "vue-router";
const router = useRouter()
const instance = axios.create({
baseURL:'/user_center',
timeout:5000,
})
instance.interceptors.request.use(
(config) => config,
(err) => Promise.reject(err)
)
instance.interceptors.response.use(
(response) =>{
let message = ''
const data = response.data as Response<any>;
if (!data.result){
message = data.msg
Message.error(message)
}else {
if (data.code === 400){
message = "400 bad request"
Message.error(message)
}else if (data.code === 401){
// 没有权限则删除token,跳转登陆页面
removeToken()
router.push("/login")
}else if (data.code === 403){
message = "权限错误"
Message.error(message)
}else if (data.code === 500){
message = "内部错误"
Message.error(message)
}else if (data.code === 200){
return response.data
}else{
message = "请求错误,错误码: " + response.data.code
Message.error(message)
}
}
},
(err) =>{
Message.error( "请求失败,错误信息: "+ err.message)
Promise.reject(err)
}
)
export default instance;