我想使用xhr进度事件更新进度条。
我有以下代码:
xhr: function() {
var xhr = Ember.$.ajaxSettings.xhr();
xhr.upload.addEventListener("progress", function(e){
if (e.lengthComputable) {
self.didProgress(e);
}
}, false);
return xhr;
},
问题是该事件只发生一次,我相信这是因为服务器调用是跨域的。
有人知道我必须通过标头在服务器上设置什么才能正常工作吗?
据我所知,这与跨域请求无关。通常,在Apache上,您不会多次触发进度事件,因为(我假设)您将整个文件上传到一个区块中。这是在不使用类似apache上传进度模块的模块的情况下的正常行为
我过去在没有模块的情况下实现这一点的方法是在客户端上将文件拆分为块(使用Fileneneneba API和Blob)。第一个区块被发送,等待服务器响应,从它停止的地方发送第二个区块,以此类推,直到没有更多的区块可以上传。
网络上有一些这样的例子。你可能想看看JQuery文件上传是如何做到的。
我希望这能有所帮助。