webaxios.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import axios from 'axios'
  2. import app from '@/app'
  3. import qs from 'qs';
  4. // 初始化配置
  5. let setting = {
  6. baseURL: app.baseUrl + '/api/app',
  7. timeout: 10000,
  8. withCredentials: true,
  9. crossDomain: true,
  10. responseType: 'json',
  11. headers: {
  12. 'content-type': 'application/x-www-form-urlencoded'
  13. }
  14. }
  15. const server = axios.create(setting)
  16. // 请求拦截
  17. server.interceptors.request.use(function (config) {
  18. if (config.method === 'post') {
  19. if (!config.file) {
  20. config.data = qs.stringify(config.data)
  21. }
  22. }
  23. config.headers = Object.assign(config.headers, {
  24. 'X-Requested-With': 'XMLHttpRequest',
  25. })
  26. return config;
  27. }, function (error) {
  28. return Promise.reject(error);
  29. })
  30. // 响应拦截
  31. server.interceptors.response.use(function (response) {
  32. return response.data;
  33. }, function (error) {
  34. return Promise.reject(error);
  35. })
  36. export default server;
  37. const $get = (url, data, config) => {
  38. return server.get(url, {
  39. params: data,
  40. ...config
  41. })
  42. }
  43. const $post = (url, data, config) => {
  44. return server.post(url, data, config)
  45. }
  46. const $postFile = (url, data, config) => {
  47. let form = new FormData()
  48. for (let i in data) {
  49. form.append(i, data[i])
  50. }
  51. let postConfig = {
  52. file: true
  53. }
  54. return server.post(url, form, Object.assign(postConfig, config))
  55. }
  56. export { $get, $post, $postFile }