vue - axios取消接口请求

axios

/*
  方式一:工厂方式创建
         CancelToken.source
*/
var CancelToken = axios.CancelToken;
var source = CancelToken.source();

axios.get('/user/12345', {
  cancelToken: source.token
}).catch(function(thrown) {
  if (axios.isCancel(thrown)) {
    console.log('Request canceled', thrown.message);
  } else {
    // 处理错误
  }
});
// 取消请求(message 参数是可选的)
source.cancel('Operation canceled by the user.');


/*
  方式二:executor 函数
*/ 
var CancelToken = axios.CancelToken;
var cancel;
axios.get('/user/12345', {
  cancelToken: new CancelToken(function executor(c) {
    // executor 函数接收一个 cancel 函数作为参数
    cancel = c;
  })
});
// 取消请求
cancel();

原生:abort()

<div>
    <button  id="get">请求</button>
    <button  id="cancel">取消</button>
</div>
<script>
    var currentAjax = null
    $('#get').click(function () {
        currentAjax = $.ajax({
            type: 'GET',
            url: 'http://...',
            success: function (res) {
                console.log(res)
            },
            error: function (err) {
                console.log("获取失败")
            }
        })
    })
    $('#cancel').click(function () {
        if (currentAjax) {
            currentAjax.abort()
        }
    })
</script>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容