http.interceptor.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. /**
  20. // 如果token不存在,return Promise.reject(config) 会取消本次请求
  21. if (!token) {
  22. return Promise.reject(config)
  23. }
  24. **/
  25. return config
  26. }, config => { // 可使用async await 做异步操作
  27. return Promise.reject(config)
  28. })
  29. http.interceptors.response.use((response) => {
  30. /* 对响应成功做点什么 可使用async await 做异步操作*/
  31. const code = response.data.code
  32. // 未登录
  33. if (code === -99) {
  34. console.log('未登录/登录已失效')
  35. return Promise.reject(response)
  36. }
  37. // 服务端返回的状态码不等于-1,则reject()
  38. if (code != 0) {
  39. toast(response.data.msg || '网络异常')
  40. return Promise.reject(response.data)
  41. }
  42. console.log(response.data)
  43. uni.hideLoading()
  44. return Promise.resolve(response.data)
  45. }, (response) => {
  46. /* 对响应错误做点什么 (statusCode !== 200)*/
  47. console.log(response)
  48. uni.hideLoading()
  49. return Promise.reject(response)
  50. })
  51. export default http