forked from 77media/video-flow
修复编译错误
This commit is contained in:
parent
13dea8d7ec
commit
dc2e9ff656
41
lib/api.ts
41
lib/api.ts
@ -13,10 +13,10 @@ export const apiRequest = async (
|
|||||||
const token = getToken();
|
const token = getToken();
|
||||||
|
|
||||||
// 构建请求头
|
// 构建请求头
|
||||||
const headers: HeadersInit = {
|
const headers: Record<string, string> = {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
...options.headers,
|
...(options.headers as Record<string, string>),
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加token到请求头(如果存在)
|
// 添加token到请求头(如果存在)
|
||||||
@ -102,11 +102,13 @@ export const apiDelete = (endpoint: string, options: RequestInit = {}) => {
|
|||||||
/**
|
/**
|
||||||
* 文件上传请求
|
* 文件上传请求
|
||||||
*/
|
*/
|
||||||
export const apiUpload = (endpoint: string, formData: FormData, options: RequestInit = {}) => {
|
export const apiUpload = async (endpoint: string, formData: FormData, options: RequestInit = {}) => {
|
||||||
const token = getToken();
|
const token = getToken();
|
||||||
|
|
||||||
const headers: HeadersInit = {
|
// 构建请求头(文件上传时不设置Content-Type,让浏览器自动设置)
|
||||||
...options.headers,
|
const headers: Record<string, string> = {
|
||||||
|
'Accept': 'application/json',
|
||||||
|
...(options.headers as Record<string, string>),
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加token到请求头(如果存在)
|
// 添加token到请求头(如果存在)
|
||||||
@ -114,10 +116,37 @@ export const apiUpload = (endpoint: string, formData: FormData, options: Request
|
|||||||
headers['X-EASE-ADMIN-TOKEN'] = token;
|
headers['X-EASE-ADMIN-TOKEN'] = token;
|
||||||
}
|
}
|
||||||
|
|
||||||
return apiRequest(endpoint, {
|
try {
|
||||||
|
const response = await fetch(`${API_BASE_URL}${endpoint}`, {
|
||||||
...options,
|
...options,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers,
|
headers,
|
||||||
body: formData,
|
body: formData,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 检查响应状态
|
||||||
|
if (!response.ok) {
|
||||||
|
if (response.status === 401) {
|
||||||
|
// Token过期或无效
|
||||||
|
clearAuthData();
|
||||||
|
window.location.href = '/login';
|
||||||
|
throw new Error('身份验证失败,请重新登录');
|
||||||
|
}
|
||||||
|
throw new Error(`请求失败: ${response.status}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
|
||||||
|
// 检查业务状态码
|
||||||
|
if (data.code === '401' || data.status === 401) {
|
||||||
|
clearAuthData();
|
||||||
|
window.location.href = '/login';
|
||||||
|
throw new Error('身份验证失败,请重新登录');
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
} catch (error) {
|
||||||
|
console.error('API request failed:', error);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user