http.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. define([
  2. 'axios',
  3. 'ELEMENT'
  4. ], function (axios, ELEMENT) {
  5. var instance = axios.create({
  6. baseURL: window.location.origin + '/web',
  7. timeout: 10000,
  8. headers: {
  9. 'X-Requested-With': 'XMLHttpRequest'
  10. },
  11. withCredentials: true
  12. });
  13. var loadingInstance = null;
  14. instance.interceptors.request.use(function (config) {
  15. loadingInstance = ELEMENT.Loading.service({
  16. background: 'transparent'
  17. });
  18. return config;
  19. }, function (error) {
  20. return Promise.reject(error);
  21. });
  22. instance.interceptors.response.use(function (response) {
  23. loadingInstance.close();
  24. if (response.data.code === 200) {
  25. return response.data;
  26. }
  27. return Promise.reject(response.data || {msg: '未知错误'});
  28. }, function (error) {
  29. ELEMENT.Message({
  30. message: '网络错误' + (error.Message !== undefined ? error.Message : ''),
  31. type: 'error',
  32. duration: 3000
  33. });
  34. loadingInstance.close();
  35. return Promise.reject(error);
  36. });
  37. return instance;
  38. });