2011-10-13 37 views
3

我正在使用jQuery Forms插件來執行異步文件上傳。目前,用戶中止上傳的唯一方法是在瀏覽器上按下「停止」按鈕,這可能會導致其他javascript和ajax請求停止。我想提供一個取消按鈕,但我還沒有找到任何方式取消上傳,因爲它正在使用API​​發生如何取消使用jQuery表單插件的文件上傳

是否有內置的方式,或者至少可以使用一個強大的黑客來取消上傳?

回答

5

ajaxForm方法採用jQuery.ajax所需的所有選項,因此可以捕獲它在beforeSend處理程序中生成的虛擬xhr。該xhr有中止的文件上傳中止方法:

f.ajaxForm({ 
    beforeSend: function(xhr) { 
     cancelBtn.click(xhr.abort); 
    }}); 
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

相關問題