how can i abort / cancel Axios request before complete when i change route use vue-router.
当用户打开页面时,自动发送AXIOS请求获取一些数据, 但是用户没有等待得到响应,那么他正在通过VUE路由改变路由 会有很多Axios的请求
那么我的问题有什么解决办法吗?
how can i abort / cancel Axios request before complete when i change route use vue-router.
当用户打开页面时,自动发送AXIOS请求获取一些数据, 但是用户没有等待得到响应,那么他正在通过VUE路由改变路由 会有很多Axios的请求
那么我的问题有什么解决办法吗?
基本上,您必须生成一个全局取消令牌
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
并通过在config参数中传递来在所有请求中使用它
GET请求:
axios.get('/user/12345', {
cancelToken: source.token
}).catch(function(thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message);
} else {
// handle error
}
});
POST request:
axios.post('/user/12345', {
name: 'new name'
}, {
cancelToken: source.token
})
然后,在VUE路由beforeEach
导航警卫中,您可以使用以下命令取消所有请求:
source.cancel('Operation canceled by the user.');
这是官方的AXIOS取消指南:https://github.com/axios/axios#cancellation