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