0

I need to implement AJAX file uploading interruption by click on cancel button. Here's code which I'm trying to use:

var reqx=null;

function ajax_upload(){
    reqx = $.ajax({
        type: 'post',
        url: "/file.php",
        data: new FormData( $('#file')[0] ),
        cache: false,
        contentType: false,
        processData: false,
        success: function (data) {
            console.log("success");
        },
        error: function (data) {
            console.log("error");
        }
    })
}

$('input[type=file]').change(function () {
    ajax_upload();
});

$('#cancel').click(function(){
    if (reqx != null){ 
        reqx.abort();
        reqx = null;
    }
});

Clicking on Cancel button causes an error:

Uncaught TypeError: reqx.abort is not a function

Need help to find out mistake in my code. Thanks.

user947668
  • 2,548
  • 5
  • 36
  • 58

1 Answers1

0

IIRC your looking for resolve(). http://api.jquery.com/deferred.resolve/ It causes the deferred to immediately complete and process any done logic.

Taplar
  • 24,788
  • 4
  • 22
  • 35
  • `abort()` is a legit method, see : [here](http://stackoverflow.com/questions/446594/abort-ajax-requests-using-jquery) – Sean C Jan 06 '16 at 21:47
  • From the top comment: [MDN Docs](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#abort%28%29) – Sean C Jan 06 '16 at 21:53
  • Ah, ok. And I found where the docs say the jqXHR for backwards compatability do expose the abort method. So yeah, not sure why it's giving that error. – Taplar Jan 06 '16 at 21:56