ajax.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /**
  2. * ajax 封装
  3. */
  4. import { Message } from "element-ui";
  5. import { MessageBox } from 'element-ui';
  6. import router from "@/router";
  7. const apiHost = 'http://designer.xuxiangbo.com/api';
  8. const ajax = {
  9. get(url) {
  10. return new Promise((reslove, reject) => {
  11. let xhr = new XMLHttpRequest();
  12. xhr.open('GET', `${apiHost}${url}`, true);
  13. xhr.send();
  14. xhr.onreadystatechange = () => {
  15. if (xhr.status == 200 && xhr.readyState == 4){
  16. let data = JSON.parse(xhr.response);
  17. if(data.code == 200){
  18. reslove(data.data);
  19. }else{
  20. Message.error({
  21. message: data.msg
  22. })
  23. reject(data);
  24. }
  25. }
  26. }
  27. xhr.onerror = () => {
  28. MessageBox({
  29. title: 'System Error: #500',
  30. message: '网络错误,请联系管理员!错误代码:500',
  31. type: 'error',
  32. closeOnPressEscape: false,
  33. closeOnClickModal: false,
  34. showClose: false,
  35. confirmButtonClass: 'el-button--danger'
  36. })
  37. }
  38. })
  39. },
  40. post(url, data = {}) {
  41. return new Promise((reslove, reject) => {
  42. let xhr = new XMLHttpRequest();
  43. let form = new FormData();
  44. Object.keys(data).map(item => {
  45. form.append(item, data[item]);
  46. })
  47. xhr.open('POST', `${apiHost}${url}`, true);
  48. xhr.send(form);
  49. xhr.onreadystatechange = () => {
  50. if (xhr.status == 200 && xhr.readyState == 4){
  51. let data = JSON.parse(xhr.response);
  52. if(data.code == 200){
  53. reslove(data.data);
  54. }else{
  55. Message.error({
  56. message: data.msg
  57. })
  58. reject(data);
  59. }
  60. }
  61. }
  62. xhr.onerror = () => {
  63. MessageBox({
  64. title: 'System Error: #500',
  65. message: '网络错误,请联系管理员!错误代码:500',
  66. type: 'error',
  67. closeOnPressEscape: false,
  68. closeOnClickModal: false,
  69. showClose: false,
  70. confirmButtonClass: 'el-button--danger',
  71. callback (){
  72. window.location.reload();
  73. }
  74. })
  75. }
  76. })
  77. }
  78. }
  79. export default ajax;