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