ajax.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import Vue from 'vue';
  2. import axios from 'axios';
  3. import VueAxios from 'vue-axios';
  4. import config from './config'
  5. import Qs from 'qs';
  6. const { serverAddress } = config
  7. // import DEV from "@/dev_config"; // 导入上线配置
  8. // const { ONLINE_BASE_HREF, SERVER_HREF } = DEV;
  9. Vue.use(VueAxios, axios)
  10. /* 常用ajax封装 (固定URL) */
  11. export const ajax = function (type = "post", url, params) {
  12. let token = localStorage.getItem("token")
  13. if(type.toLowerCase() == 'get'){
  14. return new Promise((resole, reject) => {
  15. axios({
  16. method: type,
  17. url: serverAddress + url,
  18. params,
  19. headers: {
  20. 'Content-Type': 'application/x-www-form-urlencoded',
  21. 'x-auth-token': token
  22. }
  23. }).then((res) => {
  24. switch (res.data.errCode) {
  25. case 'request_not_authorize': // 登录过期
  26. let url = window.location.protocol + "//" + window.location.host + "/#/login"
  27. window.location.replace(url)
  28. break;
  29. }
  30. resole(res.data);
  31. }).catch((err) => {
  32. reject(err);
  33. });
  34. });
  35. } else {
  36. return new Promise((resole, reject) => {
  37. axios({
  38. method: type,
  39. url: serverAddress + url,
  40. params,
  41. paramsSerializer: function(params) {
  42. return Qs.stringify(params, {arrayFormat: 'brackets'})
  43. },
  44. headers: {
  45. 'Content-Type': 'application/x-www-form-urlencoded',
  46. 'x-auth-token': token
  47. }
  48. }).then((res) => {
  49. switch (res.data.errCode) {
  50. case 'request_not_authorize': // 登录过期
  51. let url = window.location.protocol + "//" + window.location.host + "/#/login"
  52. window.location.replace(url)
  53. break;
  54. }
  55. resole(res.data);
  56. }).catch((err) => {
  57. reject(err);
  58. });
  59. });
  60. }
  61. }