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.
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');
}
});
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'
来源:https://stackoverflow.com/questions/19300804/jquery-file-upload-not-firing-done-callback-in-internet-explorer-ie9