axios.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. const baseUrl = getApp().globalData.baseUrl
  2. //带Token请求
  3. const request = (opts, hasToken) => {
  4. const authorization = getApp().globalData.token
  5. console.log(opts, 'opts')
  6. console.log(authorization,'authorization')
  7. // hasToken是否传入token,为true则不传token
  8. const header = {
  9. 'Content-Type': 'application/json;charset=UTF-8'
  10. }
  11. if(!hasToken){
  12. header['X-AUTH-TOKEN'] = authorization
  13. }
  14. //此token是登录成功后后台返回保存在storage中的
  15. let DefaultOpts = {
  16. url: baseUrl+opts.url,
  17. data: opts.data,
  18. method: opts.method,
  19. header: opts.header ? opts.header : header
  20. }
  21. console.log(DefaultOpts, 'DefaultOpts')
  22. let promise = new Promise(function(resolve, reject) {
  23. uni.request(DefaultOpts).then(
  24. (res) => {
  25. // console.log(res[1])
  26. // 是否超时已跳转
  27. let loginTimeOut = uni.getStorageSync('loginTimeOut');
  28. if(res[0]&&res[0].errMsg.indexOf('request:fail')>=0){
  29. resolve({
  30. status: 500,
  31. message: "请求网络失败"
  32. })
  33. }
  34. let ret = res[1]
  35. if(res[1].data.status){
  36. ret = res[1].data
  37. }else if(res[1].status){
  38. ret = res[1]
  39. }
  40. if(ret.status == '200'){
  41. resolve(ret)
  42. }else{
  43. if(ret.status == 1001 && loginTimeOut == 'NO'){ // 未登录或登录过期
  44. uni.showToast({
  45. icon:'none',
  46. title: ret.message,
  47. duration: 5000
  48. })
  49. uni.reLaunch({
  50. url: '/pages/login/login'
  51. })
  52. uni.setStorageSync('loginTimeOut', 'YES');
  53. }
  54. // 503
  55. if(ret.status == '503'){
  56. uni.showToast({
  57. icon:'none',
  58. title: ret.message,
  59. duration: 3000
  60. })
  61. }
  62. resolve(ret)
  63. }
  64. resolve(ret)
  65. }
  66. ).catch(
  67. (response) => {
  68. reject(response)
  69. }
  70. )
  71. })
  72. return promise
  73. }
  74. export default {
  75. baseUrl,
  76. request
  77. }