27 lines
751 B
JavaScript
27 lines
751 B
JavaScript
export const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || 'https://ghxiangqin.com/api/v1'
|
|
|
|
export async function apiRequest(url, options = {}) {
|
|
const token = localStorage.getItem('admin_token') || ''
|
|
const response = await fetch(`${API_BASE_URL}${url}`, {
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
Authorization: token ? `Bearer ${token}` : ''
|
|
},
|
|
...options
|
|
})
|
|
|
|
const data = await response.json()
|
|
|
|
if (response.status === 401) {
|
|
localStorage.removeItem('admin_token')
|
|
window.location.href = '/login'
|
|
throw new Error('登录已失效,请重新登录')
|
|
}
|
|
|
|
if (!response.ok || data.code !== 0) {
|
|
throw new Error(data.message || data.detail || '请求失败')
|
|
}
|
|
|
|
return data.data
|
|
}
|