request.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. *
  3. */
  4. import axios from "@/http";
  5. import router from "@/router/index";
  6. import { MessageBox } from "element-ui";
  7. const request = (path, data, method = "post", msgAlert = true) => {
  8. var params = new URLSearchParams(data);
  9. let url = DocConfig.server + path;
  10. return new Promise((resolve, reject) => {
  11. axios({
  12. url: url,
  13. method: method,
  14. data: params,
  15. headers: {
  16. "Content-Type": "application/x-www-form-urlencoded"
  17. }
  18. })
  19. .then(
  20. response => {
  21. //超时登录
  22. if (
  23. response.data.error_code === 10102 &&
  24. response.config.data.indexOf("redirect_login=false") === -1
  25. ) {
  26. router.replace({
  27. path: "/user/login",
  28. query: { redirect: router.currentRoute.fullPath }
  29. });
  30. reject(new Error("登录态无效"));
  31. }
  32. if (msgAlert && response.data && response.data.error_code !== 0) {
  33. MessageBox.alert(response.data.error_message);
  34. return reject(new Error("业务级别的错误"));
  35. }
  36. //上面没有return的话,最后返回这个
  37. resolve(response.data);
  38. },
  39. err => {
  40. if (err.Cancel) {
  41. console.log(err);
  42. } else {
  43. reject(err);
  44. }
  45. }
  46. )
  47. .catch(err => {
  48. reject(err);
  49. });
  50. });
  51. };
  52. export default request;