RequestUtils.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { extend } from 'umi-request';
  2. import qs from 'qs';
  3. import { getAsyncStorage } from './AsyncStorageUtils';
  4. const baseUrl = 'http://dingdong.izouma.com';
  5. const request = extend({
  6. prefix: baseUrl,
  7. // mode: 'no-cors',
  8. credentials: 'include',
  9. errorHandler: (error) => {
  10. console.log(error);
  11. let errorInfo = '';
  12. if (error.response) {
  13. errorInfo = error.data;
  14. } else {
  15. errorInfo = error.message;
  16. }
  17. throw errorInfo;
  18. },
  19. });
  20. request.interceptors.request.use(
  21. (url, options) => {
  22. if (options.requestType === 'form') {
  23. options.headers = {
  24. Accept: 'application/json',
  25. 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
  26. ...options.headers,
  27. };
  28. options.data = qs.stringify(options.data);
  29. }
  30. return getAsyncStorage('token').then((token) => {
  31. const headers = {
  32. 'Access-Control-Allow-Origin': '*',
  33. 'Content-Type': 'application/json',
  34. 'X-Content-Type-Options': 'nosniff',
  35. ...options.headers,
  36. };
  37. if (token) {
  38. headers.Authorization = `Bearer ${token}`;
  39. }
  40. return Promise.resolve({
  41. url,
  42. options: {
  43. ...options,
  44. headers,
  45. },
  46. });
  47. });
  48. },
  49. { global: true }
  50. );
  51. export default request;