0

我正在尝试使用面向对象的代码来处理 AJAX 上传。当我运行代码时,它会看到文件,创建 XMLHttpRequest 对象,但我似乎无法触发进度事件。我的代码的完整来源可以在这里找到: //pastebin.com/89QawbS6

这是一个片段:

var xhr = new XMLHttpRequest();

xhr.upload.addEventListener("progress", MyObj.trackProgress, false);

xhr.open("POST", url, true);
...

然后在同一个对象中,使用不同的方法:

trackProgress: function (event) {
    console.log(event);

    // stuff that should calculate percent
}

但是那个 console.log(event) 永远不会触发。

请注意:我知道 jQuery 很棒,并且有十几个很棒的上传插件可以用来代替。我这样做不是为了上课或做作业,我只是想自己更好地理解这个过程。所以提供一个 jQuery 插件作为答案并不是我想要的。我试图让自己减少对 jQuery 的依赖。

4

1 回答 1

1

这个 FF 错误可能是您的问题的原因。它在 MacOSX 和 Linux 上的另一个类似错误上报告。我不知道这是否重要,但我在 Windows 上进行了测试。我仍然相信你的代码很好。

于 2013-11-05T15:45:03.307 回答