requests.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import axios from "axios";
  2. import { Toast } from "vant";
  3. import { showMessage } from "./errorStatusCode"; // 引入状态码文件
  4. import useMessageTip from "../hooks/useMessageTip";
  5. import useShowToast from "../hooks/useToast";
  6. const { showDangerMessage } = useMessageTip();
  7. const { toastFail } = useShowToast();
  8. const baseURL = "/api"; // 请求前缀
  9. // 创建axios 实例
  10. const instance = axios.create({
  11. baseURL, // 设置API的基础URL
  12. timeout: 3000,
  13. });
  14. //请求拦截器
  15. instance.interceptors.request.use(
  16. (config) => {
  17. const token = sessionStorage.getItem("token") || '8453269023523102720';
  18. if (token) {
  19. config.headers = {
  20. ...config.headers,
  21. Token: token,
  22. };
  23. }
  24. return config;
  25. },
  26. (error) => {
  27. return Promise.reject(error);
  28. }
  29. );
  30. // 响应response 拦截器
  31. instance.interceptors.response.use(
  32. (res) => {
  33. const result = res.data;
  34. if (res.status !== 200 || res.data.code === "error") {
  35. toastFail(
  36. res.status !== 200 ? showMessage(err.status) : res.data.msg
  37. );
  38. return Promise.reject(result);
  39. }
  40. return Promise.resolve(result);
  41. },
  42. (err) => {
  43. showDangerMessage(showMessage(err.status));
  44. return Promise.reject({ msg: "请求失败" });
  45. }
  46. );
  47. const requests = {
  48. post(url, data = {}, config = {
  49. headers: {
  50. "Content-type": " application/x-www-form-urlencoded; charset=UTF-8",
  51. }
  52. }) {
  53. return instance.post(url, data, config);
  54. },
  55. get(url, params = {}) {
  56. return instance.get(url, { params: params });
  57. },
  58. delete(url, data = {}) {
  59. return instance.delete(url, { data: data });
  60. },
  61. put(url, data = {}) {
  62. return instance.put(url, data);
  63. },
  64. };
  65. export default requests;