3

我正在使用 jQuery Forms 插件进行异步文件上传。目前,用户中止上传的唯一方法是按下浏览器上的“停止”按钮,这可能会导致其他 javascript 和 ajax 请求也停止。我想提供一个取消按钮,但我还没有找到任何方法来取消上传,因为它正在使用 API 进行。

有没有一种内置的方式,或者至少我可以使用一个强大的黑客来取消上传?

4

2 回答 2

5

ajaxForm方法采用与 jQuery.ajax 相同的所有选项,因此可以捕获xhr它在处理程序中生成的虚拟对象beforeSendxhr有一个中止文件上传的中止方法:

f.ajaxForm({
    beforeSend: function(xhr) {
        cancelBtn.click(xhr.abort);
    }});
于 2011-10-13T21:12:09.157 回答
1

自 2012 年 12 月以来,可以直接访问 xhr:

var form = $('#myForm').ajaxSubmit({ ... });
var xhr = form.data('jqxhr');
....
$('#cancel').on('click', function(){
    xhr.abort();
});

我用它来取消ajax文件上传。

链接 - https://github.com/malsup/form/issues/221

于 2015-05-18T13:31:46.170 回答