request.js 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import store from "@/store";
  2. import axios from 'axios';
  3. import {getStorage, removeItem} from '@/utils/localStorage'
  4. var requestCount = 0; //记录下同时的请求数
  5. // import ElementUI from 'element-ui';
  6. var showToast = true;
  7. axios.defaults.headers.post['elabEnvironment'] = '4'; //axios默认的请求方式,可以自己设置
  8. axios.defaults.headers.post['userType'] = '1000'; //axios默认的请求方式,可以自己设置
  9. // axios.defaults.headers.post['Authorization'] = 'Token 9837b7480a99ab4df7e3a06ad0d990fbc7b941e4'; //axios默认的请求方式,可以自己设置
  10. axios.interceptors.request.use(function(config) {
  11. if(config.noLoading){
  12. store.dispatch('setLoading',false);//不显示loading态
  13. }
  14. if(!config.url.includes('aiGenerateImg/getResult') &&
  15. !config.url.includes('aiGenerateImg/uploadImgControlNet') &&
  16. !config.url.includes('aiGenerateImg/getPredictions') &&
  17. !config.url.includes('aiGenerateImg/img2img_local') &&
  18. !config.url.includes('aiGenerateImg/img2Img')){
  19. requestCount++;//请求数+1
  20. }
  21. if (config.url.endsWith('.jpg') || config.url.endsWith('.png') || config.url.endsWith('.gif')) {
  22. // 给图片get请求附加header
  23. console.warn("***图片get请求***",config.url)
  24. return config;
  25. } else {
  26. config.url = window.$config.api_url + config.url;
  27. if (config.url.includes('elab-marketing-operate/mofangTest/user/login')||config.url.includes('elab-marketing-user/vcode/send/verifyCode')) {
  28. config.headers['userId'] = "";
  29. config.headers['ip'] = "";
  30. showToast = true;
  31. } else {//uploadOss 上传format文件过大时提示不成功,接口500,通过测试与header有关,注释掉上传的header就好了
  32. if (!config.url.includes('elab-marketing-sms/aliyun/openapi/uploadOss')){
  33. let userinfo = getStorage('userInfoThing');
  34. config.headers['userId'] = userinfo ? JSON.parse(userinfo).dataUserId : '';
  35. config.headers['ip'] = getStorage('ip');
  36. config.headers['maiya_token'] = getStorage('userInfoThing') ? JSON.parse(getStorage('userInfoThing')).maiya_token || "" : ""; //token
  37. }
  38. }
  39. }
  40. return config;
  41. }, function(error) {
  42. console.log(error)
  43. });
  44. axios.interceptors.response.use(function(response) {
  45. if(!response.config.url.includes('aiGenerateImg/getResult') &&
  46. !response.config.url.includes('aiGenerateImg/uploadImgControlNet') &&
  47. !response.config.url.includes('aiGenerateImg/img2img_local') &&
  48. !response.config.url.includes('aiGenerateImg/getPredictions') &&
  49. !response.config.url.includes('aiGenerateImg/img2Img')){
  50. requestCount = requestCount - 1;
  51. }
  52. if (requestCount < 1) {
  53. store.state.loading = false;//不显示loading状态
  54. }
  55. let result = response.data;
  56. return result;
  57. }, function(error) {
  58. console.log("***error***", error, requestCount)
  59. if( !error.config.url.includes('aiGenerateImg/getResult') &&
  60. !error.config.url.includes('aiGenerateImg/uploadImgControlNet') &&
  61. !error.config.url.includes('aiGenerateImg/img2img_local') &&
  62. !error.config.url.includes('aiGenerateImg/getPredictions') &&
  63. !error.config.url.includes('aiGenerateImg/img2Img')){
  64. requestCount = requestCount - 1;
  65. }
  66. if (requestCount < 1) {
  67. store.state.loading = false;//不显示loading状态
  68. }
  69. let result = error.response;
  70. return result;
  71. });
  72. export default axios;