You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

84 lines
2.3 KiB

// import axios from "axios";
// const service = axios.create({
// // baseURL: 'http://192.168.8.191:8080',
// // baseURL: 'http://localhost:8080',
// baseURL: '/api',
// });
// // http://192.168.8.191:8080
// //Axios的响应拦截器..
// service.interceptors.response.use(resp => {
// return resp.data;
// }, error => {
// return Promise.reject(error);
// });
// export default service;
import axios from "axios";
import { useTokenStore } from "../stores/token";
const service = axios.create({
// baseURL: 'http://192.168.8.191:8080',
// baseURL: 'http://localhost:8080',
baseURL: '/api',
});
// Axios的请求拦截器,在这里添加token到请求头
axios.interceptors.request.use(config => {
const tokenStore = useTokenStore();
if (tokenStore.token) {
config.headers.token = tokenStore.token;
}
return config;
}, error => {
return Promise.reject(error);
});
service.interceptors.request.use(config => {
const tokenStore = useTokenStore();
if (tokenStore.token) {
// 一般后端会约定一个请求头的字段名来接收token,常见的如 'Authorization',并要求按照一定格式传递,比如 'Bearer <token>',这里按照此格式添加,你需要根据后端实际要求调整
config.headers.token =tokenStore.token;
}
return config;
}, error => {
return Promise.reject(error);
});
// // Axios的响应拦截器
// service.interceptors.response.use(resp => {
// return resp.data;
// }, error => {
// return Promise.reject(error);
// });
//响应拦截器
service.interceptors.response.use(response => {
return response.data;
}, error =>{
if(error.code === "500"){
ElMessage.error("服务器错误!");
}
const response = error.response;
if(error.response && error.response.status === 403){
//提示一下权限不足
ElMessage.warning(response.data.message);
} else if(response && response.code === 401){
//提示一下未登录
ElMessage.warning(response.data.message);
//跳转登录页面
const curURL = router.currentRoute.value.path;
if(curURL.startsWith('/')){
router.push('/login')
} else{
router.push('/login');
}
console.log();
}
return Promise.reject(error);
})
export default service;