Как я могу отменить загрузку файла с помощью плагина jQuery forms

#jquery-forms-plugin #asyncfileupload

#jquery-forms-plugin #asyncfileupload

Вопрос:

Я использую плагин jQuery Forms для выполнения асинхронной загрузки файлов. В настоящее время единственный способ для пользователя прервать эту загрузку — нажать кнопку «Стоп» в своем браузере, что может привести к остановке других запросов javascript и ajax. Я хотел бы предоставить кнопку отмены, но я не нашел никакого способа отменить загрузку, поскольку это происходит с использованием API.

Есть ли встроенный способ или, по крайней мере, надежный способ, который я могу использовать, чтобы отменить загрузку по мере ее возникновения?

Ответ №1:

ajaxForm Метод использует все те же параметры, что и jQuery.ajax, поэтому можно захватить фиктивный xhr файл, который он создает в beforeSend обработчике. xhr Имеет метод прерывания, который прерывает загрузку файла:

 f.ajaxForm({
    beforeSend: function(xhr) {
        cancelBtn.click(xhr.abort);
    }});
  

Ответ №2:

С декабря 2012 года можно получить прямой доступ к xhr:

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

Я использую его для отмены загрузки файлов ajax.

ссылка — https://github.com/malsup/form/issues/221