Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery-File-Upload not firing done callback in Internet Explorer (IE9)

i checked some questions regarding the same issue, blueimp jquery file upload - "done", "complete" callbacks not working for IE 9 , but even after putting my Content-Type as 'text/html' as the response the 'done' callback isn't being fired. Also as the jQuery-File-Upload says i need to have a redirect to get the uploaded file (https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads) after the upload is done, but that isn't also being done. Any help would be appreciated. Regards.

like image 692
Ricardo Brazão Avatar asked Oct 10 '13 16:10

Ricardo Brazão


2 Answers

ok so i go it working.The problem was that in the fileuploader configuration i had

dataType: 'json'

but since IE9 uses the iframe it makes a html request, and the response has the Content-Type 'text/html'. With that configuration the fileuploader is expecting to receive a json response so my response was going to a fail callback i made just for testing. Got it working by looking at this post jQuery FileUpload doesn't trigger 'done'

like image 171
Ricardo Brazão Avatar answered Nov 03 '22 02:11

Ricardo Brazão


The most voted answer isn't the best solution and can throw errors. Actually, setting dataType isn't recommended for IE < 10, from this (awesome) article:

When the dataType option is set to text, json, html, or script, the iframe transport performs some processing of the response. Because it is operating on a DOM object obtained from the iframe it uses, however, and not the raw HTTP response data, there is the potential for some surprises to pop up.

http://missioncriticallabs.com/blog/2012/04/lessons-learned-from-jquery-file-upload/

Real solution:

The "thing" about not firing in IE < 10 isn't related with dataType, is just the lack of callback add that forces the file push in fileupload event.

$('#file_file').fileupload({
    add: function (e, data) {
        data.submit(); //this will 'force' the submit in IE < 10
    },
    done: function (e, data) {
        alert('Done');
    }
});
like image 34
Wagner Leonardi Avatar answered Nov 03 '22 02:11

Wagner Leonardi