2025-09-25 11:34:55 +08:00
|
|
|
import axios from 'axios'
|
|
|
|
|
import type { AxiosInstance, AxiosRequestConfig } from 'axios'
|
|
|
|
|
|
|
|
|
|
class HttpRequest {
|
|
|
|
|
private readonly baseUrl: string
|
|
|
|
|
constructor() {
|
|
|
|
|
this.baseUrl = '/api'
|
|
|
|
|
}
|
|
|
|
|
getInsideConfig() {
|
|
|
|
|
const config = {
|
|
|
|
|
baseURL: this.baseUrl, // 所有的请求地址前缀部分(没有后端请求不用写)
|
|
|
|
|
timeout: 80000 // 请求超时时间(毫秒)
|
|
|
|
|
}
|
|
|
|
|
return config
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 请求拦截
|
|
|
|
|
interceptors(instance: AxiosInstance, url: string | number | undefined) {
|
|
|
|
|
instance.interceptors.request.use(
|
|
|
|
|
config => {
|
|
|
|
|
// 添加全局的loading..
|
2025-11-03 10:36:11 +08:00
|
|
|
// config.headers['Authorization'] =
|
2025-12-09 08:41:11 +08:00
|
|
|
// 'bearer ' + JSON.parse(window.localStorage.getItem('adminInfo') || '{}').access_token // 请求头带上token token要在登录的时候保存在localStorage中
|
|
|
|
|
config.headers['Authorization'] =
|
|
|
|
|
'bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySW5kZXgiOiJmYTM3YjkzY2M5MGQ0YzE3ODRjYThmNmRlYmRkZWUxYSIsInVzZXJfbmFtZSI6InJvb3QiLCJzY29wZSI6WyJhbGwiXSwibmlja25hbWUiOiLotoXnuqfnrqHnkIblkZgiLCJ1c2VyVHlwZSI6MCwiZGVwdEluZGV4IjoiNTY5OWU1OTE2YTE4YTYzODFlMWFjOTJkYTViZDI2MjgiLCJleHAiOjE4MjE4MTc2MTksImF1dGhvcml0aWVzIjpbInJvb3QiXSwianRpIjoiMmJiM2Q5ZTYtNmY3Yy00Yjg1LThiM2EtZDI2ODdmMTUzMDg5IiwiY2xpZW50X2lkIjoibmpjbnRlc3QiLCJoZWFkU2N1bHB0dXJlIjoicmVzb3VyY2VEYXRhLzMxNzRDRUFFOUQ0MjRGMjJCQjkxQTU4OURENjdCMDUxLmpwZyJ9.WjeYl1lvvJdDE1FUGIhS99rE5qKaBXOypWxmxK0svWweGqEbu1XCLjKm_YkiTwjZJ_oIcn5JOO9rvHFkkea76BUsYo5wlzuBBiy7sKqM1fFzOFQq6hdFevNTJAbYH9FiBxYxI-e9DZ5mvLGE6umOjUfn_FAsku2w6Uj5DtvpOKBWYzLEPTEifOqNI9he4zJAmVZniUUMf26SDoEdfu0TyrIS1j_qKaEb-cqR1XDhivdthEBK5m9vxJyXFZ5kofNxwQQkit_oiqJRkCZIt9TWAjCh-frzMHCvA30hkAr-VCD2JfCmmEr3hW_lmwfINaPtFVbHCdCKqdrl6VmF1HObaQ'
|
2025-09-25 11:34:55 +08:00
|
|
|
// 请求头携带token
|
|
|
|
|
return config
|
|
|
|
|
},
|
|
|
|
|
(error: any) => {
|
|
|
|
|
return Promise.reject(error)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
//响应拦截
|
|
|
|
|
instance.interceptors.response.use(
|
|
|
|
|
res => {
|
|
|
|
|
//返回数据
|
|
|
|
|
const { data } = res
|
|
|
|
|
// console.log('返回数据处理', res)
|
|
|
|
|
return data
|
|
|
|
|
},
|
|
|
|
|
(error: any) => {
|
|
|
|
|
console.log('error==>', error)
|
|
|
|
|
return Promise.reject(error)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
request(options: AxiosRequestConfig) {
|
|
|
|
|
const instance = axios.create()
|
|
|
|
|
options = Object.assign(this.getInsideConfig(), options)
|
|
|
|
|
this.interceptors(instance, options.url)
|
|
|
|
|
return instance(options)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const http = new HttpRequest()
|
|
|
|
|
export default http
|