interceptors.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /**
  2. * 功能:http拦截
  3. * 作者:小莫唐尼
  4. * 邮箱:studio@925i.cn
  5. * 时间:2022年07月21日 19:02:14
  6. * 版本:v0.1.0
  7. * 修改记录:
  8. * 修改内容:
  9. * 修改人员:
  10. * 修改时间:
  11. */
  12. import {
  13. getAdminAccessToken
  14. } from "@/utils/auth.js";
  15. import {
  16. delCache
  17. } from "@/utils/storage";
  18. export const setInterceptors = (http) => {
  19. http.interceptors.request.use(
  20. (config) => {
  21. // 可使用async await 做异步操作
  22. config.header = {
  23. ...config.header
  24. // ... 可以直接加参数
  25. };
  26. if (getAdminAccessToken()) {
  27. config.header['admin-authorization'] = getAdminAccessToken()
  28. }
  29. return config;
  30. },
  31. (config) => {
  32. // 可使用async await 做异步操作
  33. return Promise.reject(config);
  34. }
  35. );
  36. http.interceptors.response.use(
  37. (response) => {
  38. /* 对响应成功做点什么 可使用async await 做异步操作*/
  39. // if (response.data.code !== 200) { // 服务端返回的状态码不等于200,则reject()
  40. // return Promise.reject(response) // return Promise.reject 可使promise状态进入catch
  41. // if (response.config.custom.verification) { // 演示自定义参数的作用
  42. // return response.data
  43. // }
  44. if (response.statusCode == 200) {
  45. return response.data;
  46. } else {
  47. return Promise.reject(response);
  48. }
  49. },
  50. (response) => {
  51. /* 对响应错误做点什么 (statusCode !== 200)*/
  52. if (!response.data) {
  53. return Promise.reject({
  54. status: 500,
  55. message: 'API接口服务异常!'
  56. })
  57. } else if (response.data.status == 401) {
  58. delCache('APP_ADMIN_LOGIN_TOKEN');
  59. uni.$eShowModal({
  60. title: '提示',
  61. content: '您未登录超管账号或登录已过期,是否重新登录?',
  62. showCancel: true,
  63. cancelText: '否',
  64. cancelColor: '#999999',
  65. confirmText: '是',
  66. confirmColor: '#03a9f4'
  67. }).then(res => {
  68. uni.navigateTo({
  69. url: '/pagesB/login/login'
  70. })
  71. }).catch(err => {
  72. uni.switchTab({
  73. url: '/pages/tabbar/about/about'
  74. })
  75. })
  76. } else {
  77. return Promise.reject(response.data);
  78. }
  79. }
  80. );
  81. };