request.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import axios from 'axios';
  2. import Setting from '@/setting';
  3. import { getCookies, removeCookies } from '@/libs/util';
  4. const service = axios.create({
  5. baseURL: Setting.apiBaseURL,
  6. timeout: 10000, // 请求超时时间
  7. });
  8. axios.defaults.withCredentials = true; // 携带cookie
  9. // 请求拦截器
  10. service.interceptors.request.use(
  11. (config) => {
  12. if (config.kefu) {
  13. let baseUrl = Setting.apiBaseURL.replace(/adminapi/, 'kefuapi');
  14. config.baseURL = baseUrl;
  15. } else {
  16. config.baseURL = Setting.apiBaseURL;
  17. }
  18. if (config.file) {
  19. config.headers['Content-Type'] = 'multipart/form-data';
  20. }
  21. try {
  22. if (config.headerItem) {
  23. for (let i in config.headerItem) {
  24. config.headers[i] = config.headerItem[i];
  25. }
  26. }
  27. } catch (error) {
  28. console.log(error);
  29. }
  30. const token = getCookies('token');
  31. const kefuToken = getCookies('kefu_token');
  32. if (token || kefuToken) {
  33. config.headers['Authori-zation'] = config.kefu ? 'Bearer ' + kefuToken : 'Bearer ' + token;
  34. }
  35. return config;
  36. },
  37. (error) => {
  38. // do something with request error
  39. return Promise.reject(error);
  40. },
  41. );
  42. service.interceptors.response.use(
  43. (response) => {
  44. let obj = {};
  45. if (!!response.data) {
  46. if (typeof response.data == 'string') {
  47. obj = JSON.parse(response.data);
  48. } else {
  49. obj = response.data;
  50. }
  51. }
  52. let status = response.data ? obj.status : 0;
  53. // let status = response.data ? response.data.status : 0;
  54. const code = status;
  55. switch (code) {
  56. case 200:
  57. return obj;
  58. default:
  59. return Promise.reject(obj || { msg: '未知错误' });
  60. }
  61. },
  62. (error) => {
  63. return Promise.reject(error);
  64. },
  65. );
  66. export default service;
  67. // function sendRequest(url, method, params, header) {
  68. // const instance = axios.create({
  69. // baseURL: Setting.apiBaseURL, // 请求的根域名
  70. // timeout: 1000, // 请求超时时间
  71. // headers: {
  72. // 'X-Custom-Header': header, // 自定义头信息
  73. // },
  74. // });
  75. // if (method === 'GET') {
  76. // instance
  77. // .get(url, { params: params })
  78. // .then((response) => {
  79. // // 处理响应数据
  80. // })
  81. // .catch((error) => {
  82. // // 处理错误
  83. // });
  84. // } else if (method === 'POST') {
  85. // instance
  86. // .post(url, params, { headers: header })
  87. // .then((response) => {
  88. // // 处理响应数据
  89. // })
  90. // .catch((error) => {
  91. // // 处理错误
  92. // });
  93. // } else if (method === 'PUT') {
  94. // instance
  95. // .put(url, params, { headers: header })
  96. // .then((response) => {
  97. // // 处理响应数据
  98. // })
  99. // .catch((error) => {
  100. // // 处理错误
  101. // });
  102. // } else if (method === 'DELETE') {
  103. // instance
  104. // .delete(url, { headers: header })
  105. // .then((response) => {
  106. // // 处理响应数据
  107. // })
  108. // .catch((error) => {
  109. // // 处理错误
  110. // });
  111. // }
  112. // return instance;
  113. // }