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
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;
|