原因:http在下发请求时,如果不做任何处理,往往会存在点击过多,同时下发多个相同请求,给服务器造成压力,页面卡顿,影响使用。
解决方法:
以下贴出相关代码:
// 请求拦截器
axios.interceptors.request.use((config) => {
// 发起请求时,取消掉当前正在进行的相同请求
if (config.url.indexOf('system') === -1 && promiseArr[config.url]) {
promiseArr[config.url]('操作取消');
promiseArr[config.url] = cancel;
} else {
promiseArr[config.url] = cancel;
}
let token = store.getters.token;
for (let i = 0; i < 5; i++) {
if (document.cookie.indexOf('token') > -1) {
delCookie('token');
} else {
break;
}
}
setCookie('token', token);
// config.url = config.url + (config.url.indexOf('?') > -1 ? 'token=' : '?token=') + token;
config.url = config.url;
return config;
}, error => Promise.reject(error));