zhengyiming
2025-06-11 91f00f1df35a964d69f48b9f71b484e2d4ef357e
apps/taro/src/utils/request/index.ts
@@ -1,5 +1,5 @@
import { type IRequestOptions, Request, type RequestConfig } from 'senior-request';
import { type AxiosRequestConfig, type AxiosError } from 'axios';
import axios, { type AxiosRequestConfig, type AxiosError } from 'axios';
import qs from 'qs';
import Taro from '@tarojs/taro';
import { getToken, Message } from '@/utils';
@@ -49,7 +49,7 @@
  REDIRECT = 9,
}
// 与后端约定的响应数据格式
interface ResponseStructure {
export interface ResponseStructure {
  success: boolean;
  data: any;
  /**
@@ -94,13 +94,20 @@
  withCredentials: true,
};
const config: RequestConfig<ResponseStructure, IRequestOptions> = {
export const config: RequestConfig<ResponseStructure, IRequestOptions> = {
  ...AxiosOptions,
  errorConfig: {
    // 错误接收及处理
    errorHandler: (error, opts) => {
      console.log('error: ', error);
      const userStore = useUserStoreWithOut();
      logFront({
        url: opts.url,
        message: JSON.stringify(error),
        requestTime: new Date().toLocaleString(),
        userId: userStore.virtualUserId,
      });
      if (opts?.skipErrorHandler) throw error;
      if (opts?.customErrorHandler) {
@@ -289,3 +296,15 @@
}
export const request = Request.create(config);
function logFront(body: API.LogFrontInput) {
  return axios.request({
    baseURL: AxiosOptions.baseURL,
    url: '/api/Log/LogFront',
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
  });
}