我正在使用jQuery Forms插件进行异步文件上传。目前,用户中止上传的唯一方法是按下浏览器上的“停止”按钮,这可能会导致其他javascript和ajax请求停止。我想提供一个取消按钮,但我没有找到任何方法来取消上传正在发生使用API。
是否有内置方式,或者至少是我可以使用的强大黑客方法,在发生上传时取消上传?
答案 0 :(得分:5)
ajaxForm
方法采用jQuery.ajax采用的所有相同选项,因此可以捕获它在xhr
处理程序中生成的虚拟beforeSend
。 xhr
有一个中止方法,可以中止文件上传:
f.ajaxForm({
beforeSend: function(xhr) {
cancelBtn.click(xhr.abort);
}});
答案 1 :(得分:1)
自2012年12月起,可以直接访问xhr:
var form = $('#myForm').ajaxSubmit({ ... });
var xhr = form.data('jqxhr');
....
$('#cancel').on('click', function(){
xhr.abort();
});
我用它来取消ajax文件上传。