http.interceptor.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import http from '@/services/http.instence.js'
  2. // 土司提示
  3. const toast = (message) => {
  4. uni.showToast({
  5. icon: 'none',
  6. mask: true,
  7. title: message
  8. })
  9. }
  10. http.interceptors.request.use((config) => {
  11. uni.showLoading({
  12. mask: true,
  13. title: config.custom.loading
  14. })
  15. // 可使用async await 做异步操作
  16. config.header = {
  17. ...config.header,
  18. }
  19. if (config.data?.isConfig) {
  20. config.header['Content-Type'] = 'application/x-www-form-urlencoded'
  21. }
  22. /**
  23. // 如果token不存在,return Promise.reject(config) 会取消本次请求
  24. if (!token) {
  25. return Promise.reject(config)
  26. }
  27. **/
  28. return config
  29. }, config => { // 可使用async await 做异步操作
  30. return Promise.reject(config)
  31. })
  32. http.interceptors.response.use((response) => {
  33. /* 对响应成功做点什么 可使用async await 做异步操作*/
  34. const code = response.data.code
  35. // 服务端返回的状态码不等于-1,则reject()
  36. if (code === -1) {
  37. toast(response.data.msg || '系统错误')
  38. return Promise.reject(response.data)
  39. }
  40. // 用户未注册
  41. if (code === -2) {
  42. console.log('用户未注册')
  43. }
  44. console.log(response.data)
  45. uni.hideLoading()
  46. return Promise.resolve(response.data)
  47. }, (response) => {
  48. /* 对响应错误做点什么 (statusCode !== 200)*/
  49. console.log(response)
  50. uni.hideLoading()
  51. return Promise.reject(response)
  52. })
  53. export default http