好的,我已经尝试了所有我能想到的并仔细阅读了所有现有问题,但没有一个有任何实际答案。
我有一个angularjs前端和java / REST后端,在Tomcat上运行。
我有一个XMLHttpRequest和一个进度事件监听器,如下所示:
xhr.upload.addEventListener('progress', function(e) {
console.log(e.loaded);
console.log(e.total);
}, false);
如果我正在上传100MB文件,则进度事件侦听器会反复触发,但会在第一秒内报告100%。然后xhr返回它大约30秒到一分钟后加载,正如预期的那样。我尝试过设置不同的标题,使用sendAsBinary()而不是send,以及其他一些我无法回想起的其他技巧。角度应用程序在localhost上运行,无论我使用本地开发实例还是托管开发实例,Tomcat应用服务器都以相同的方式运行。
我正在寻找我能得到的任何想法,无论是Tomcat设置,代码更改还是其他任何想法。我知道问题不在java后端代码本身,因为在文件处理代码开始运行之前,progress事件已经停止触发100%。这种情况发生在Chrome 40 / FF 35 / Safari 6上。