【问题标题】:xhr upload progress event only firing oncexhr 上传进度事件只触发一次
【发布时间】:2013-09-04 23:07:04
【问题描述】:

我想使用 xhr 进度事件更新进度条。

我有以下代码:

  xhr: function() {
    var xhr = Ember.$.ajaxSettings.xhr();
    xhr.upload.addEventListener("progress", function(e){
      if (e.lengthComputable) {
        self.didProgress(e);
      }
    }, false);
    return xhr;
  },

问题是事件只发生一次,我相信这是因为服务器调用是跨域的。

有人知道我必须通过标头在服务器上设置什么才能使其正常工作吗?

【问题讨论】:

标签: javascript xmlhttprequest cross-domain


【解决方案1】:

据我所知,这与跨域请求无关。通常,在 Apache 上,您不会多次触发进度事件,因为(我假设)您将整个文件上传到一个块中。这是不使用像apache-upload-progress-module这样的模块的正常行为

过去我在没有模块的情况下实现此目的的方法是在客户端将文件拆分成块(使用文件 API 和 Blob)。第一个块被发送,等待服务器响应,从它离开的地方发送第二个块,依此类推,直到没有更多的块要上传。

网络上有一些这样的例子。您可能想看看JQuery File Upload 是如何做到的。

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2012-05-17
    • 2012-09-25
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 2011-02-27
    相关资源
    最近更新 更多