吉安感知网项目-前端
罗广辉
2026-01-26 beb95fb5fc166804056abafd70fc01ac27de7621
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import axios from 'axios'
import store from '@/store/'
import { serialize } from '@/utils/util'
import { ElMessage } from 'element-plus'
// 全局未授权错误提示状态,只提示一次
const { VITE_APP_API_XT } = import.meta.env
 
const serviceXT = axios.create({
    timeout: 600000,
    baseURL: VITE_APP_API_XT,
    //跨域请求,允许保存cookie
    withCredentials: false,
})
 
//http request拦截
serviceXT.interceptors.request.use(
    config => {
        const authorization = config.authorization === false
        const xtToken = store.state.user.xtToken
        if (xtToken && !authorization) {
            config.headers['Authorization'] = xtToken
        }
        const meta = config.meta || {}
 
        //headers中配置text请求
        if (config.text === true) {
            config.headers['Content-Type'] = 'text/plain'
        }
        //headers中配置serialize为true开启序列化
        if (config.method === 'post' && meta.isSerialize === true) {
            config.data = serialize(config.data)
        }
        return config
    },
    error => {
        return Promise.reject(error)
    }
)
//http response拦截
serviceXT.interceptors.response.use(
    res => {
        const status = res?.data?.code || res?.data?.error_code || res?.status
        const message = res?.data?.msg || res?.data?.message || '系统错误'
        // 如果请求为非200默认统一处理
        if (status !== 200 && status !== 0) {
            ElMessage({ message: message, type: 'error', })
            return Promise.reject(new Error(message))
        }
        return res
    },
    error => {
        return Promise.reject(new Error(error))
    }
)
export default serviceXT