request.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { extend } from "umi-request";
  2. import cleanDeep from "clean-deep";
  3. export interface SearchInitParams {
  4. rows?: string | number;
  5. page?: string | number;
  6. }
  7. const request = extend({
  8. // requestType: 'form',
  9. hideLoading: true, // 默认都不显示加载
  10. timeout: 20000,
  11. timeoutMessage: "请求超时",
  12. });
  13. request.interceptors.request.use(
  14. (url, options: any) => {
  15. const Authorization = sessionStorage.getItem("Authorization") || "";
  16. const authHeaders: any = {};
  17. if (Authorization) {
  18. authHeaders.Authorization = Authorization;
  19. }
  20. return {
  21. url,
  22. options: {
  23. ...options,
  24. params: cleanDeep(options.params),
  25. data: cleanDeep(options.data),
  26. headers: {
  27. ...options.headers,
  28. ...authHeaders,
  29. },
  30. },
  31. };
  32. },
  33. { global: false }
  34. );
  35. request.interceptors.response.use(
  36. async (res: any) => {
  37. if (res.status > 299 || res.status < 200) {
  38. const msg = "服务器错误,状态码" + res.status;
  39. throw new Error(msg);
  40. }
  41. const data = await res.clone().json();
  42. if (data.code === 401 || data.code === 4001 || data.code == 403 || data.code == 5000) {
  43. sessionStorage.removeItem("Authorization");
  44. return;
  45. }
  46. if (data.code !== 200 && data.errCode !== 0) {
  47. const msg = data.msg || data.message || "处理失败,请重试";
  48. if (!(data.code === 403 || data.code === 401)) {
  49. }
  50. throw new Error(msg);
  51. }
  52. return res;
  53. },
  54. { global: false }
  55. );
  56. export default request;