Search code examples
javascriptjqueryinternet-explorerjquery-file-upload

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.


Solution

  • 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');
        }
    });