blob: c13c51697cf127c91ca596da8f073838e5338051 [file] [log] [blame]
import axios from 'axios'
import type { AxiosRequestConfig, AxiosResponse } from 'axios'
const instance = axios.create({
baseURL: process.env.API_BASE_URL,
timeout: 10000,
headers: {
'Content-Type': 'application/json'
}
})
// 请求拦截器
instance.interceptors.request.use(
(config) => {
console.log('Request Config:', config)
// 添加认证 token
const token = localStorage.getItem('token')
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
return config
},
(error) => {
return Promise.reject(error)
}
)
// 响应拦截器
instance.interceptors.response.use(
(response) => {
if(response.headers['content-type']!=='application/x-bittorrent')
{
if (response.status === 200) {
return response.data.data
}
return Promise.reject(response.data)
}else {
return response
}
},
(error) => {
if(error.status===401){
localStorage.removeItem('token');
// window.location.href = '/login';
}
// 统一错误处理
console.error('API Error:', error.response?.status, error.message)
return Promise.reject(error)
}
)
export default instance