最近碰到一个需求是当页面(路由)进行跳转时,取消已经发送的ajax(axios)请求。关于如何做到在页面离开时触发函数 可以看看vue-router 的官方文档,在这里记录一下ajax/axios 取消请求的方式。
原始Xhr
原生xhr取消请求的方法很简单,就是调用xhr对象下的 abort 方法。
1 | const xhr = new XMLHttpRequest() |
使用axios
当大家使用例如vue之类的框架时,我们一般都是使用axios去做一些请求的发送的。
那么axios如何去取消请求的发送呢? 我们找到了axios的文档
可以看到 axios 基于 cancel token 取消请求
1 | var CancelToken = axios.CancelToken; |