我检查了一些有关同一问题的问题,blueimp jquery file upload - "done", "complete" callbacks not working for IE 9,但即使将我的Content-Type作为'text / html'作为响应,也没有触发'done'回调。此外,jQuery-File-Upload表示我需要在上传完成后重定向才能获取上传的文件(https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads),但这也没有完成。 任何帮助,将不胜感激。 问候。
答案 0 :(得分:10)
好的,所以我继续工作。问题是在fileuploader配置中我有
dataType: 'json'
但是由于IE9使用iframe,它会发出一个html请求,而响应的内容类型为“text / html”。使用该配置,fileuploader期望接收json响应,因此我的响应将转到我刚刚进行测试的失败回调。通过查看此帖jQuery FileUpload doesn't trigger 'done'
了解它答案 1 :(得分:7)
投票最多的答案不是最佳解决方案,可能会出错。实际上,建议不要将dataType
设为IE< 1> 10,从这篇(很棒的)文章:
当dataType选项设置为text,json,html或script时, iframe传输执行一些响应处理。因为它 正在对从它使用的iframe获取的DOM对象进行操作, 但是,并没有原始HTTP响应数据,有潜力 突然出现一些惊喜。
http://missioncriticallabs.com/blog/2012/04/lessons-learned-from-jquery-file-upload/
真正的解决方案:
"""关于不在IE中开火< 10与dataType
无关,只是缺少回调add
,强制文件在fileupload事件中进行推送。
$('#file_file').fileupload({
add: function (e, data) {
data.submit(); //this will 'force' the submit in IE < 10
},
done: function (e, data) {
alert('Done');
}
});