|
@@ -15,6 +15,8 @@ interface RequestConfig {
|
|
|
data?: any;
|
|
data?: any;
|
|
|
header?: any;
|
|
header?: any;
|
|
|
timeout?: number;
|
|
timeout?: number;
|
|
|
|
|
+ /** 是否跳过添加token,用于免登录接口 */
|
|
|
|
|
+ skipAuth?: boolean;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -33,22 +35,24 @@ interface ResponseData<T = any> {
|
|
|
*/
|
|
*/
|
|
|
export const request = <T = any>(config: RequestConfig): Promise<T> => {
|
|
export const request = <T = any>(config: RequestConfig): Promise<T> => {
|
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
|
- const { url, method = 'GET', data, header = {}, timeout = API_CONFIG.timeout } = config;
|
|
|
|
|
|
|
+ const { url, method = 'GET', data, header = {}, timeout = API_CONFIG.timeout, skipAuth = false } = config;
|
|
|
|
|
|
|
|
// 构建完整URL
|
|
// 构建完整URL
|
|
|
let fullUrl = url.startsWith('http') ? url : `${API_CONFIG.baseUrl}${url}`;
|
|
let fullUrl = url.startsWith('http') ? url : `${API_CONFIG.baseUrl}${url}`;
|
|
|
|
|
|
|
|
- // 添加token到请求头
|
|
|
|
|
- const token = getToken();
|
|
|
|
|
- if (token) {
|
|
|
|
|
- header['accessToken'] = token;
|
|
|
|
|
|
|
+ // 添加token到请求头(skipAuth为true时跳过)
|
|
|
|
|
+ if (!skipAuth) {
|
|
|
|
|
+ const token = getToken();
|
|
|
|
|
+ if (token) {
|
|
|
|
|
+ header['accessToken'] = token;
|
|
|
|
|
|
|
|
if (API_CONFIG.enableLog) {
|
|
if (API_CONFIG.enableLog) {
|
|
|
console.log('[请求拦截] 添加token到请求头:', token.substring(0, 8) + '...');
|
|
console.log('[请求拦截] 添加token到请求头:', token.substring(0, 8) + '...');
|
|
|
}
|
|
}
|
|
|
- } else {
|
|
|
|
|
- if (API_CONFIG.enableLog) {
|
|
|
|
|
- console.warn('[请求拦截] 未找到token,请求将不携带token');
|
|
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (API_CONFIG.enableLog) {
|
|
|
|
|
+ console.warn('[请求拦截] 未找到token,请求将不携带token');
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -145,8 +149,8 @@ export const request = <T = any>(config: RequestConfig): Promise<T> => {
|
|
|
/**
|
|
/**
|
|
|
* GET请求
|
|
* GET请求
|
|
|
*/
|
|
*/
|
|
|
-export const get = <T = any>(url: string, data?: any): Promise<T> => {
|
|
|
|
|
- return request<T>({ url, method: 'GET', data });
|
|
|
|
|
|
|
+export const get = <T = any>(url: string, data?: any, options?: { skipAuth?: boolean }): Promise<T> => {
|
|
|
|
|
+ return request<T>({ url, method: 'GET', data, ...options });
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
/**
|