request.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import axios, { AxiosInstance, AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios'
  2. import { ElMessage } from "element-plus";
  3. import { useUserStore } from "@/store/modules/user"
  4. // 创建axios实例 进行基本参数配置
  5. const service = axios.create({
  6. // 默认请求地址,根据环境的不同可在.env 文件中进行修改
  7. // baseURL: import.meta.env.VUE_APP_BASE_
  8. // 本地地址
  9. baseURL: "http://127.0.0.1:8001/api",
  10. // baseURL: "http://119.91.156.147:1007/api",
  11. // 华为云地址
  12. // baseURL: "http://119.3.32.162:666/api",
  13. // 测试服地址
  14. //baseURL: "http://129.204.254.216:888/api",
  15. // 好游快暴服地址
  16. //baseURL: "http://42.194.162.4:1001/api",
  17. // 设置接口访问超时时间
  18. timeout: 3000000, // request timeout,
  19. // 跨域时候允许携带凭证
  20. // withCredentials: true
  21. })
  22. // request interceptor 接口请求拦截
  23. service.interceptors.request.use((config: AxiosRequestConfig) => {
  24. /**
  25. * 用户登录之后获取服务端返回的token,后面每次请求都在请求头中带上token进行JWT校验
  26. * token 存储在本地储存中(storage)、vuex、pinia
  27. */
  28. const userStore = useUserStore();
  29. const token: string = userStore.token;
  30. // 自定义请求头
  31. if (token) { config.headers['Authorization'] = token }
  32. return config
  33. }, (error: AxiosError) => {
  34. // 请求错误,这里可以用全局提示框进行提示
  35. return Promise.reject(error);
  36. })
  37. // response interceptor 接口响应拦截
  38. service.interceptors.response.use((response: AxiosResponse) => {
  39. // 直接返回res,当然你也可以只返回res.data
  40. // 系统如果有自定义code也可以在这里处理
  41. return response
  42. }, (error: AxiosError) => {
  43. return Promise.reject(error)
  44. })
  45. /**
  46. * @description 显示错误消息
  47. * opt 传入参数
  48. * err 错误信息
  49. * type 消息类型
  50. * duration 消息持续时间
  51. */
  52. function showErrMessage(opt, err, type: any = 'error', duration: number = 5000) {
  53. ElMessage({
  54. message: err.msg,
  55. type: type,
  56. duration: duration
  57. })
  58. }
  59. export default service