config.ts 962 B

123456789101112131415161718192021222324252627
  1. import type { InternalAxiosRequestConfig, AxiosResponse } from 'axios'
  2. import { ResultEnum } from '@/enums/HttpEnum'
  3. import { useUserStoreWithOut } from '@/stores'
  4. const defaultRequestInterceptors = (config: InternalAxiosRequestConfig) => {
  5. const userStore = useUserStoreWithOut()
  6. if (config.headers && typeof config.headers.set === 'function') {
  7. config.headers.set('Authorization', 'Bearer ' + userStore.token)
  8. }
  9. return config
  10. }
  11. const defaultResponseInterceptors = (response: AxiosResponse) => {
  12. const { code, msg } = response.data
  13. if (response?.config?.responseType === 'blob') {
  14. // 如果是文件流,直接过
  15. return response
  16. } else if (code === ResultEnum.SUCCESS) {
  17. return response.data
  18. } else if (code === ResultEnum.FORBIDDEN) {
  19. ElMessage.error('无权限')
  20. return response.data
  21. } else {
  22. console.error(msg)
  23. ElMessage.error(msg)
  24. }
  25. }
  26. export { defaultResponseInterceptors, defaultRequestInterceptors }