99 lines
2.6 KiB
TypeScript
99 lines
2.6 KiB
TypeScript
import store from "@/store";
|
|
import Config from "@/util/config";
|
|
import axios, { AxiosResponse } from "axios";
|
|
// 添加请求拦截器
|
|
axios.defaults.headers.common["Content-Type"] = "application/json; charset=utf8";
|
|
axios.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
|
|
axios.interceptors.request.use((config) => {
|
|
config.baseURL = `${Config.baseUrl}`;
|
|
config.timeout = 50000;
|
|
let token = window.localStorage.getItem("token")
|
|
config.headers.Authorization = token ?? "1"
|
|
return config;
|
|
}, (error) => {
|
|
// 对请求错误做些什么
|
|
return Promise.reject(error);
|
|
});
|
|
|
|
// 添加响应拦截器
|
|
axios.interceptors.response.use((res: AxiosResponse) => {
|
|
if (res.data?.status === 401) {
|
|
store.usrStore.openLoginDilog()
|
|
store.usrStore.logOut()
|
|
window.location.href = '#/login'
|
|
}
|
|
return res;
|
|
}, (err) => {
|
|
if (err.status === 401) {
|
|
store.usrStore.openLoginDilog()
|
|
store.usrStore.logOut()
|
|
window.location.href = '#/login'
|
|
}
|
|
return Promise.reject(err);
|
|
});
|
|
class BaseHttp {
|
|
async gets(url: string, params: any) {
|
|
let res = await axios({
|
|
method: 'get',
|
|
url: url,
|
|
headers: {
|
|
"token": window.localStorage.getItem("video-token"),
|
|
'Content-Type': 'application/json; charset=utf-8'
|
|
},
|
|
params
|
|
});
|
|
return res.data;
|
|
};
|
|
async get(url: string, params: any) {
|
|
let res = await axios({
|
|
method: 'get',
|
|
url: url,
|
|
params
|
|
});
|
|
return res.data;
|
|
};
|
|
async post(url: string, params: any) {
|
|
let res = await axios({
|
|
method: 'post',
|
|
url: url,
|
|
data: params
|
|
});
|
|
return res.data;
|
|
};
|
|
|
|
async forms(url: string, params: any) {
|
|
let res = await axios({
|
|
method: 'post',
|
|
url: url,
|
|
params: params
|
|
});
|
|
return res.data;
|
|
};
|
|
async upload(url: string, params: any) {
|
|
let res = await axios({
|
|
method: 'post',
|
|
url: url,
|
|
data: params
|
|
});
|
|
return res.data;
|
|
};
|
|
async put(url: string, params: any) {
|
|
let res = await axios({
|
|
method: 'put',
|
|
url: url,
|
|
data: params
|
|
});
|
|
return res.data;
|
|
};
|
|
async delete(url: string, params: any) {
|
|
let res = await axios({
|
|
method: 'delete',
|
|
url: url,
|
|
params
|
|
})
|
|
return res.data;
|
|
};
|
|
}
|
|
|
|
// eslint-disable-next-line import/no-anonymous-default-export
|
|
export default new BaseHttp() |