api.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import axios from 'axios';
  2. import qs from 'qs';
  3. // axios.defaults.baseURL = 'http://192.168.2.122:8080/api';
  4. axios.defaults.baseURL = '/api';
  5. axios.defaults.timeout = 5000;
  6. // axios.defaults.headers.common['token'] = token
  7. //axios.defaults.headers.post['Content-Type'] = 'multipart/form-data';//配置请求头
  8. // 请求拦截器
  9. axios.interceptors.request.use((config) => {
  10. let baseData = config.data;
  11. if (config.method.toLowerCase() === 'post') {
  12. config.data = qs.stringify(config.data);
  13. }
  14. if (config.url === '/auth/checkSign') { //针对经销商导入文件的接口 data不做转义 否则会造成传值为空 config.data =
  15. config.data= baseData
  16. }
  17. if (config.url === '/firmsUpload') { //针对上传文件的接口 data不做转义 否则会造成传值为空
  18. config.data = baseData
  19. }
  20. if (config.url === '/importDealerFeedback') { //针对经销商导入文件的接口 data不做转义 否则会造成传值为空
  21. config.data = baseData
  22. }
  23. return config;
  24. }, (err) => {
  25. console.log('请求拦截', err);
  26. return Promise.reject(err);
  27. })
  28. // 响应拦截器
  29. axios.interceptors.response.use((config) => {
  30. return config;
  31. }, (err) => {
  32. console.log('响应拦截', err);
  33. return Promise.reject(err);
  34. })
  35. axios.uploadFile = function(url, data) {
  36. console.log(data.getAll('file'));
  37. let config = {
  38. //请求的接口,在请求的时候,如axios.get(url,config);这里的url会覆盖掉config中的url
  39. url: url,
  40. //基础url前缀
  41. //请求头信息
  42. headers: {
  43. 'Content-Type': 'multipart/form-data',
  44. },
  45. transformRequest: [data => data],
  46. //跨域请求时是否需要使用凭证
  47. withCredentials: true,
  48. // 返回数据类型
  49. responseType: 'json', //default
  50. };
  51. return axios.post(url, data, config);
  52. };
  53. export default axios