废话不多上代码:亲测有效
import axios from 'axios';
const httpPlugin = {
install(Vue, options) {
// 创建axios实例
const http = axios.create({
baseURL: options.baseURL, // 基础URL
timeout: 10000, // 请求超时时间
// 其他配置...
});
// 请求拦截器
http.interceptors.request.use(config => {
config.headers.metaTime = new Date().getTime() //首先在请求拦截中加一个时间戳(虽然不准确)
// config.method 可以获取get或者post
// 可以在这里添加请求头、处理token等
return config;
}, error => {
// 请求错误处理
return Promise.reject(error);
});
// 响应拦截器
http.interceptors.response.use(response => {
const res = response.data
let endTime = new Date()
let durtion = 0
if (response.config.headers.metaTime && response.config.headers) {
durtion = (endTime.getTime() - response.config.headers.metaTime)
console.log(durtion, '请求时长')
//这里就可以根据请求时间来做判断
}
// 对响应数据做处理,例如只返回data部分
return response.data;
}, error => {
// 响应错误处理
return Promise.reject(error);
});
// 将axios实例挂载到Vue原型上,实现全局调用
Vue.prototype.$http = http;
}
};
export default httpPlugin;
config.headers.metaTime = new Date().getTime() //首先在请求拦截中加一个时间戳(虽然不准确)
// config.method 可以获取get或者post
let endTime = new Date()
let durtion = 0
if (response.config.headers.metaTime && response.config.headers) {
durtion = (endTime.getTime() - response.config.headers.metaTime)
console.log(durtion, '请求时长')
//这里就可以根据请求时间来做判断
}