api.js 2.2 KB

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