http.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import env from '@/env.js';
  2. const headers = {
  3. "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
  4. }
  5. const http = async (method, url, data, header) => {
  6. url = url || ''
  7. data = {
  8. ...data,
  9. token: uni.getStorageSync('token')
  10. }
  11. method = method || 'GET'
  12. header = header || headers
  13. // if (uni.getStorageSync('token')) header.cookie = uni.getStorageSync('token')
  14. let error, response;
  15. [error, response] = await uni.request({
  16. url: env.BASE_API + url,
  17. data: header['Content-Type'].indexOf('application/json') > -1 ? JSON.stringify(data) : data,
  18. method: method,
  19. header: header,
  20. timeout: 30000
  21. })
  22. // response.header['Set-Cookie'] && uni.setStorageSync('token', response.header['Set-Cookie'])
  23. const res = response.data
  24. if ([508, 512, 514].indexOf(res.code) > -1) {
  25. uni.hideLoading()
  26. uni.clearStorageSync()
  27. uni.navigateTo({
  28. url: '/pages/login/index'
  29. })
  30. return Promise.reject(res)
  31. } else if (res.code === 500) {
  32. console.error(res)
  33. uni.showToast({
  34. title: '服务器繁忙!',
  35. duration: 2000,
  36. icon: 'none'
  37. });
  38. return Promise.reject(res)
  39. } else if (res.code === 400) {
  40. uni.showToast({
  41. title: res.msg,
  42. duration: 4000,
  43. icon: 'none'
  44. });
  45. return Promise.reject(res)
  46. } else if (res.code === 201) {
  47. uni.hideLoading()
  48. return Promise.reject(res)
  49. } else if (res.code === 200) {
  50. return Promise.resolve(res)
  51. } else {
  52. return Promise.reject(res)
  53. }
  54. }
  55. export default http