微信

ajax.js 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import axios from 'axios'
  2. import qs from 'qs'
  3. import { Toast } from 'vant'
  4. const Axios = axios.create({
  5. timeout: 60000,
  6. responseType: 'json',
  7. withCredentials: true,
  8. queryData: {},
  9. urlData: {},
  10. headers: {
  11. 'Content-Type': 'multipart/form-data'
  12. }
  13. })
  14. Axios.interceptors.request.use((config) => {
  15. // 处理请求data,若为get请求,拼到url后面,若为post请求,直接添加到body中
  16. let queryData = qs.stringify(config.queryData)
  17. // 判断是通过斜杠传参还是通过query传参
  18. if (config.url.indexOf(':') > -1) {
  19. if (typeof config.urlData === 'object') {
  20. config.url = Object.keys(config.urlData).reduce((url, k) => { // 此方法对每个元素进行处理
  21. const re = new RegExp(`:${k}(?!w)`, 'i')
  22. return url.replace(re, config.urlData[k])
  23. }, config.url)
  24. }
  25. } else {
  26. if (queryData) {
  27. config.url += '?' + queryData
  28. }
  29. }
  30. let fm = new FormData()
  31. for (let k in config.data) {
  32. if (Array.isArray(config.data[k])) {
  33. fm.append(k, ...config.data[k].map(v => `${k}=${encodeURIComponent(v)}`))
  34. } else {
  35. fm.append(k, config.data[k])
  36. }
  37. }
  38. config.data = fm
  39. return config
  40. }, (error) => {
  41. console.log(error)
  42. })
  43. const ajax = (...args) => {
  44. return new Promise((resolve, reject) => {
  45. Axios(...args).then(({ data }) => {
  46. const { Message, Status } = data
  47. if (Status) {
  48. if (Message === 406) {
  49. window.location.href = '/c/#/sendSms?isLottery=1'
  50. } else {
  51. resolve(Message)
  52. }
  53. } else {
  54. console.log(data)
  55. if (typeof (Message) === 'string' && Message.indexOf('401-') > -1) {
  56. resolve(Message)
  57. } else if (typeof (Message) === 'string' && Message.indexOf('没有找到') > -1) {
  58. } else {
  59. Toast.fail(Message)
  60. }
  61. }
  62. }).catch(reject)
  63. })
  64. }
  65. export default ajax