api.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 === '/firmsUpload'){ //针对上传文件的接口 data不做转义 否则会造成传值为空
  15. config.data = baseData
  16. console.log(baseData)
  17. }
  18. return config;
  19. }, (err) => {
  20. console.log('请求拦截',err);
  21. return Promise.reject(err);
  22. })
  23. // 响应拦截器
  24. axios.interceptors.response.use((config) => {
  25. return config;
  26. }, (err) => {
  27. console.log('响应拦截', err);
  28. return Promise.reject(err);
  29. })
  30. axios.uploadFile = function (url, data) {
  31. console.log(data.getAll('file'));
  32. let config = {
  33. //请求的接口,在请求的时候,如axios.get(url,config);这里的url会覆盖掉config中的url
  34. url: url,
  35. //基础url前缀
  36. //请求头信息
  37. headers: {
  38. 'Content-Type': 'multipart/form-data',
  39. },
  40. transformRequest: [data => data],
  41. //跨域请求时是否需要使用凭证
  42. withCredentials: true,
  43. // 返回数据类型
  44. responseType: 'json', //default
  45. };
  46. return axios.post(url, data, config);
  47. };
  48. export default axios