Browse Source

chore: 优化请求

master
wangxiang 2 years ago
parent
commit
0e5a905ff9
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 3
      src/store/modules/user.ts
  2. 4
      src/utils/http/axios/Axios.ts
  3. 2
      src/utils/http/axios/axiosTransform.ts
  4. 2
      src/utils/http/axios/index.ts

3
src/store/modules/user.ts

@ -24,6 +24,7 @@ import { isUrl, isEmpty } from '/@/utils/is';
import { h } from 'vue'; import { h } from 'vue';
import { getAuthClient } from '/@/utils'; import { getAuthClient } from '/@/utils';
import { merge } from 'lodash-es'; import { merge } from 'lodash-es';
import { RequestOptions } from '/#/axios';
interface UserState { interface UserState {
userInfo: Nullable<User>; userInfo: Nullable<User>;
@ -120,7 +121,7 @@ export const useUserStore = defineStore({
options: { options: {
clientId: client[0], clientId: client[0],
clientSecret: client[1] clientSecret: client[1]
} } as RequestOptions
}); });
} }
const data = await login(loginParams); const data = await login(loginParams);

4
src/utils/http/axios/Axios.ts

@ -6,7 +6,7 @@
*/ */
import type { AxiosRequestConfig, AxiosInstance, AxiosResponse } from 'axios'; import type { AxiosRequestConfig, AxiosInstance, AxiosResponse } from 'axios';
import type { RequestOptions, R, UploadFileParams } from '../../../../types/axios'; import type { RequestOptions, R, UploadFileParams } from '/#/axios';
import type { CreateAxiosOptions } from './axiosTransform'; import type { CreateAxiosOptions } from './axiosTransform';
import axios from 'axios'; import axios from 'axios';
import qs from 'qs'; import qs from 'qs';
@ -74,7 +74,7 @@ export class VAxios {
const axiosCanceler = new AxiosCanceler(); const axiosCanceler = new AxiosCanceler();
// 请求拦截器配置处理 // 请求拦截器配置处理
this.axiosInstance.interceptors.request.use((config: AxiosRequestConfig) => { this.axiosInstance.interceptors.request.use((config: CreateAxiosOptions) => {
// 如果开启了取消重复请求,则禁止取消重复请求 // 如果开启了取消重复请求,则禁止取消重复请求
// @ts-ignore // @ts-ignore
const { ignoreCancelToken } = config.requestOptions; const { ignoreCancelToken } = config.requestOptions;

2
src/utils/http/axios/axiosTransform.ts

@ -26,7 +26,7 @@ export abstract class AxiosTransform {
requestCatchHook?: (e: Error, options: RequestOptions) => Promise<any>; requestCatchHook?: (e: Error, options: RequestOptions) => Promise<any>;
/** 请求之前的拦截器 */ /** 请求之前的拦截器 */
requestInterceptors?: (config: AxiosRequestConfig, options: CreateAxiosOptions) => AxiosRequestConfig; requestInterceptors?: (config: CreateAxiosOptions, options: CreateAxiosOptions) => AxiosRequestConfig;
/** 请求之后的拦截器 */ /** 请求之后的拦截器 */
responseInterceptors?: (res: AxiosResponse) => AxiosResponse; responseInterceptors?: (res: AxiosResponse) => AxiosResponse;

2
src/utils/http/axios/index.ts

@ -109,7 +109,7 @@ const transform: AxiosTransform = {
// 请求之前处理config // 请求之前处理config
const token = getAccessToken(); const token = getAccessToken();
const clientId = import.meta.env['VITE_CLIENT_ID'], clientSecret = import.meta.env['VITE_CLIENT_SECRET']; const clientId = import.meta.env['VITE_CLIENT_ID'], clientSecret = import.meta.env['VITE_CLIENT_SECRET'];
const { clientId: customClientId , clientSecret: customClientSecret } = options?.requestOptions || {}; const { clientId: customClientId , clientSecret: customClientSecret } = config.requestOptions || {};
// 使用token进行请求 // 使用token进行请求
if (token && (config as Recordable)?.requestOptions?.withToken !== false) { if (token && (config as Recordable)?.requestOptions?.withToken !== false) {
(config as Recordable).headers.Authorization = options.authenticationScheme (config as Recordable).headers.Authorization = options.authenticationScheme

Loading…
Cancel
Save