jQuery-File-Upload未在Internet Explorer(IE9)中触发完成回调

时间:2013-10-10 16:02:31

标签: javascript jquery internet-explorer jquery-file-upload

我检查了一些有关同一问题的问题,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),但这也没有完成。 任何帮助,将不胜感激。 问候。

2 个答案:

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