7

我检查了一些关于同一问题的问题,blueimp jquery 文件上传-“完成”,“完成”回调不适用于 IE 9,但即使在将我的 Content-Type 作为“文本/html”作为响应后,“完成”回调没有被解雇。同样正如 jQuery-File-Upload 所说,上传完成后我需要重定向才能获取上传的文件(https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads) ,但这还没有完成。任何帮助,将不胜感激。问候。

4

2 回答 2

10

好的,所以我开始工作了。问题是在文件上传器配置中我有

dataType: 'json'

但由于 IE9 使用 iframe,它发出一个 html 请求,并且响应具有 Content-Type 'text/html'。使用该配置,文件上传器预计会收到一个 json 响应,所以我的响应是我为测试而制作的失败回调。通过查看这篇文章得到它的工作jQuery FileUpload 不会触发“完成”

于 2013-10-11T10:14:16.590 回答
7

投票最多的答案不是最佳解决方案,可能会引发错误。实际上,dataType对于 IE < 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');
    }
});
于 2014-03-24T16:49:41.717 回答