| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import axios from 'axios'
- import { Message, MessageBox } from 'element-ui'
- import store from '@/store'
- const service = axios.create({
- baseURL: process.env.VUE_APP_BASE_API || '/api',
- timeout: 30000
- })
- service.interceptors.request.use(
- config => {
- // 始终发送 X-Frontend-Type 标识
- config.headers['X-Frontend-Type'] = 'agent'
- if (store.state.token) {
- config.headers['Authorization'] = 'Bearer ' + store.state.token
- }
- return config
- },
- error => {
- console.error('请求错误:', error)
- return Promise.reject(error)
- }
- )
- service.interceptors.response.use(
- response => {
- const res = response.data
- if (res.code !== 200) {
- Message({
- message: res.message || '请求失败',
- type: 'error',
- duration: 3 * 1000
- })
- if (res.code === 401) {
- // 清除过期token
- store.commit('CLEAR_AUTH')
- // 跳转登录页,保留当前端口
- window.location.href = window.location.origin + '/login'
- }
- return Promise.reject(new Error(res.message || 'Error'))
- } else {
- return res
- }
- },
- error => {
- console.error('响应错误:', error)
- Message({
- message: error.message,
- type: 'error',
- duration: 3 * 1000
- })
- return Promise.reject(error)
- }
- )
- export default service
|