You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import axios from 'axios' const service = axios.create({ baseURL: import.meta.env.VITE_API_BASE, timeout: 10000, headers: { 'Content-Type': 'application/json' } })
// 请求拦截器
service.interceptors.request.use(config => { const token = localStorage.getItem('token') if (token) { config.headers.Authorization = `Bearer ${token}` } return config }, error => { return Promise.reject(error) })
// 响应拦截器
service.interceptors.response.use( response => { return response }, error => { const { response } = error if (response && response.status === 401) { const machineId = localStorage.getItem('machineId') localStorage.removeItem('token') window.location.href = `/login?machineId=${machineId}` return Promise.resolve({ needsLogin: true }) } return Promise.reject(error) } )
export default service
|