request.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import axios from 'axios'
  2. import qs from 'qs'
  3. import auth from './auth'
  4. import { Toast } from 'vant'
  5. export function request(request, isFile) {
  6. // console.log('get token:', request.headers, store.getters.token, getToken())
  7. if (!request.headers) {
  8. request.headers = {}
  9. // request.headers = { 'Content-Type': 'application/json' }
  10. }
  11. // console.log('token:', auth.getToken())
  12. if (request.headers && auth.getToken()) {
  13. // ['RC-Token'] is a custom headers key
  14. request.headers['RC-Token'] = auth.getToken()
  15. }
  16. const requestBody = {
  17. method: request.method,
  18. url: request.url,
  19. data: qs.stringify(request.data)
  20. }
  21. if (isFile) {
  22. requestBody.data = request.data
  23. }
  24. if (request.headers) {
  25. requestBody.headers = request.headers
  26. }
  27. console.log('request: ', request)
  28. return new Promise((resolve, reject) => {
  29. axios(requestBody).then((res) => {
  30. console.log('response:', res)
  31. if (res && res.data && res.status === 200) {
  32. const resData = res.data
  33. switch (resData.errno) {
  34. case 501:
  35. Toast(resData.errmsg)
  36. reject(resData.errmsg)
  37. break
  38. case 401:
  39. case 402:
  40. case 502:
  41. case 503:
  42. case 504:
  43. case 505:
  44. case 506:
  45. case 507:
  46. case 508:
  47. case 801:
  48. Toast(resData.errmsg)
  49. reject(resData.errmsg)
  50. break
  51. }
  52. resolve(resData)
  53. } else {
  54. console.log(res)
  55. reject(res)
  56. }
  57. }).catch((err, x) => {
  58. console.log(request.url + ' fail', err, x)
  59. Toast(err)
  60. reject(err, x)
  61. })
  62. })
  63. }