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.

83 lines
2.3 KiB

8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
  1. // import axios from "axios";
  2. // const service = axios.create({
  3. // // baseURL: 'http://192.168.8.191:8080',
  4. // // baseURL: 'http://localhost:8080',
  5. // baseURL: '/api',
  6. // });
  7. // // http://192.168.8.191:8080
  8. // //Axios的响应拦截器..
  9. // service.interceptors.response.use(resp => {
  10. // return resp.data;
  11. // }, error => {
  12. // return Promise.reject(error);
  13. // });
  14. // export default service;
  15. import axios from "axios";
  16. import { useTokenStore } from "../stores/token";
  17. const service = axios.create({
  18. // baseURL: 'http://192.168.8.191:8080',
  19. // baseURL: 'http://localhost:8080',
  20. baseURL: '/api',
  21. });
  22. // Axios的请求拦截器,在这里添加token到请求头
  23. axios.interceptors.request.use(config => {
  24. const tokenStore = useTokenStore();
  25. if (tokenStore.token) {
  26. config.headers.token = tokenStore.token;
  27. }
  28. return config;
  29. }, error => {
  30. return Promise.reject(error);
  31. });
  32. service.interceptors.request.use(config => {
  33. const tokenStore = useTokenStore();
  34. if (tokenStore.token) {
  35. // 一般后端会约定一个请求头的字段名来接收token,常见的如 'Authorization',并要求按照一定格式传递,比如 'Bearer <token>',这里按照此格式添加,你需要根据后端实际要求调整
  36. config.headers.token =tokenStore.token;
  37. }
  38. return config;
  39. }, error => {
  40. return Promise.reject(error);
  41. });
  42. // // Axios的响应拦截器
  43. // service.interceptors.response.use(resp => {
  44. // return resp.data;
  45. // }, error => {
  46. // return Promise.reject(error);
  47. // });
  48. //响应拦截器
  49. service.interceptors.response.use(response => {
  50. return response.data;
  51. }, error =>{
  52. if(error.code === "500"){
  53. ElMessage.error("服务器错误!");
  54. }
  55. const response = error.response;
  56. if(error.response && error.response.status === 403){
  57. //提示一下权限不足
  58. ElMessage.warning(response.data.message);
  59. } else if(response && response.code === 401){
  60. //提示一下未登录
  61. ElMessage.warning(response.data.message);
  62. //跳转登录页面
  63. const curURL = router.currentRoute.value.path;
  64. if(curURL.startsWith('/')){
  65. router.push('/login')
  66. } else{
  67. router.push('/login');
  68. }
  69. console.log();
  70. }
  71. return Promise.reject(error);
  72. })
  73. export default service;