yiyi-h5/src/utils/request.js
2025-01-24 11:20:15 +08:00

50 lines
1.2 KiB
JavaScript

import axios from 'axios'
import { useRoute, useRouter } from 'vue-router'
const router = useRouter()
const service = axios.create({
baseURL: import.meta.env.VITE_API_URL,
timeout: 15000
})
// Request interceptor
service.interceptors.request.use(
config => {
// Add token if needed
const token = localStorage.getItem('token')
console.log(token,124)
if (token) {
config.headers['Authorization'] = token
}
config.headers['Content-Type'] = config.method === 'get' ? 'application/x-www-form-urlencoded' : 'application/json'
return config
},
error => {
console.error(error)
return Promise.reject(error)
}
)
// Response interceptor
service.interceptors.response.use(
response => {
const res = response.data
if(res.code === 401){
localStorage.clear()
window.location.href = '/'
}
if (res.status === 1) {
// ElMessage.error(res.message || 'Error')
// return Promise.reject(new Error(res.msg || 'Error'))
}
return res
},
error => {
console.error('err' + error)
// ElMessage.error(error.message || 'Request Error')
return Promise.reject(error)
}
)
export default service