request.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // 导入axios
  2. import axios from 'axios'
  3. // 使用element-plus ElMessage做消息提醒
  4. import { ElMessage } from 'element-plus';
  5. import Cookies from 'js-cookie'
  6. // import {getToken} from "../utils/token-utils"
  7. //1. 创建新的axios实例,
  8. const service = axios.create({
  9. baseURL: "/api",
  10. // 超时时间 单位是ms,这里设置了3s的超时时间
  11. timeout: 10 * 1000
  12. })
  13. // 请求拦截器
  14. service.interceptors.request.use(config => {
  15. const TokenKey = 'vue_admin_template_token'
  16. const token = Cookies.get(TokenKey)
  17. if (token && typeof token != 'undefined' && token != "") {
  18. // 管理员
  19. (config.headers)['Authorization'] = "Bearer " + token
  20. // 学生 (config.headers)['Authorization'] = "Bearer " + token
  21. }
  22. return config
  23. }, error => {
  24. Promise.reject(error)
  25. })
  26. // 响应拦截器
  27. service.interceptors.response.use(
  28. function (response) {
  29. if (response.data.code !== 200) {
  30. // 判断响应状态码
  31. if (response.status == 500) return Promise.reject(ElMessage.error("无操作权限"))
  32. if (response.data.code == 501) return Promise.reject(ElMessage.error("用户名有误"))
  33. else if (response.data.code == 503) return Promise.reject(ElMessage.error("密码有误"))
  34. else if (response.data.code == 504) return Promise.reject(ElMessage.error("登录已过期"))
  35. else if (response.data.code == 505) return Promise.reject(ElMessage.error("用户名占用"))
  36. } else {
  37. return response.data.data; /* 返回成功响应数据中的data属性数据 */
  38. }
  39. return response;
  40. },
  41. function (error) {
  42. if (error.response.status == 500) return Promise.reject(ElMessage.error("服务器报错"))
  43. if (error.response.data.status == 500) {
  44. return Promise.reject(ElMessage.error("无操作权限非法访问"))
  45. }
  46. });
  47. //4.导入文件
  48. export default service