vue3+vite+ts封装请求
src/http/config.ts设置请求拦截和响应拦截
iimport axios from 'axios'
//创建axios的一个实例
var instance = axios.create({
timeout: 6000, //设置超时
withCredentials: false,表示跨域请求时是否需要使用凭证
})
//请求拦截器
instance.interceptors.request.use((config: any) => {
return config;
}, (error) =>
// 对请求错误做些什么
Promise.reject(error));
//响应拦截器
instance.interceptors.response.use((response) => {
//响应成功
return response.data;
}, (error) => {
return Promise.reject(error);
});
export default instance;
src/http/api.ts请求统一处理
import instance from "./config"
const axios = async ({
method,
url,
data,
config
}: any): Promise<any> => {
method = method.toLowerCase();
if (method == 'post') {
return instance.post(url, data, { ...config })
} else if (method == 'get') {
return instance.get(url, {
params: data,
...config
})
} else if (method == 'delete') {
return instance.delete(url, {
params: data,
...config
})
} else if (method == 'put') {
return instance.put(url, data, { ...config })
} else {
return false
}
}
export {
axios
}