dibootApi.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /**
  2. * Created by uu
  3. * http配置
  4. */
  5. import Request from '@/utils/luch-request/index.js'
  6. import constant from '@/utils/constant.js'
  7. // token在Header中的key
  8. const JWT_HEADER_KEY = 'authtoken'
  9. const JWT_REFRESH_TOKEN_KEY = 'refreshtoken'
  10. const REDIRECT = 'redirect'
  11. const service = new Request({
  12. baseURL: constant.host()
  13. })
  14. /**
  15. * 请求发送之前需要做的处理
  16. */
  17. service.interceptors.request.use((config) => { // 可使用async await 做异步操作
  18. // config.header.authtoken = uni.getStorageSync(JWT_HEADER_KEY) || ''
  19. config.header.Authorization = 'Bearer '+uni.getStorageSync(JWT_HEADER_KEY) || ''
  20. // config.header.refreshtoken = uni.getStorageSync(JWT_REFRESH_TOKEN_KEY) || ''
  21. return config
  22. }, config => { // 可使用async await 做异步操作
  23. return Promise.reject(config)
  24. })
  25. /* 响应结束需要做的处理*/
  26. service.interceptors.response.use((response) => {
  27. response.data.code = Number(response.data.code)
  28. if(response.data.code === 4001) {
  29. uni.removeStorageSync(JWT_HEADER_KEY)
  30. uni.removeStorageSync(REDIRECT)
  31. uni.redirectTo({
  32. url: '/pages/login/index'
  33. })
  34. }
  35. // 检查是否携带有新的token
  36. const newToken = response.header[JWT_HEADER_KEY]
  37. if (newToken) {
  38. // 将该token设置到vuex以及本地存储中
  39. uni.setStorageSync(JWT_HEADER_KEY, newToken)
  40. }
  41. // 截取JsonResult提示
  42. if(response.data.msg && response.data.msg.indexOf(": ") > 0) {
  43. response.data.msg = response.data.msg.split(": ")[1]
  44. }
  45. return response.data
  46. }, (response) => { /* 对响应错误做点什么 (statusCode !== 200)*/
  47. return Promise.reject(response)
  48. })
  49. const dibootApi = {
  50. /**
  51. * post请求
  52. * @param {Object} url
  53. * @param {Object} data
  54. */
  55. post(url, data) {
  56. return service.post(url, data, {
  57. header: {
  58. "content-type": "application/json;charset=utf-8"
  59. }
  60. })
  61. },
  62. /**
  63. * get请求
  64. * @param {Object} url
  65. * @param {Object} params
  66. */
  67. get(url, params) {
  68. return service.get(url, {
  69. params,
  70. header: {
  71. "content-type": "application/json;charset=utf-8"
  72. }
  73. })
  74. },
  75. /**
  76. * put请求
  77. * @param {Object} url
  78. * @param {Object} data
  79. */
  80. put(url, data) {
  81. return service.put(url, data, {
  82. header: {
  83. "content-type": "application/json;charset=utf-8"
  84. }
  85. })
  86. },
  87. /**
  88. * delete请求
  89. * @param {Object} url
  90. * @param {Object} data
  91. */
  92. delete(url, data) {
  93. return service.delete(url, data, {
  94. header: {
  95. "content-type": "application/json;charset=utf-8"
  96. }
  97. })
  98. },
  99. /**
  100. * 提交form表单
  101. * @param {Object} url
  102. * @param {Object} data
  103. */
  104. postForm(url, data) {
  105. return service.post(url, data, {
  106. header: {
  107. 'Content-Type': 'application/x-www-form-urlencoded'
  108. }
  109. })
  110. }
  111. }
  112. export {
  113. dibootApi,
  114. service
  115. }