普通的JS Ajax上传进度事件不起作用

时间:2013-10-30 23:18:32

标签: ajax file-upload

我正在尝试使用面向对象的代码来处理AJAX上传。当我运行代码时,它会看到该文件,创建XMLHttpRequest对象,但我似乎无法触发progress事件。我的代码的完整来源可以在这里找到:http://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(事件)永远不会触发。

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

1 个答案:

答案 0 :(得分:1)

This FF bug might是您遇到问题的原因。据报道MacOSX和Linux上的另一个类似的bug。我不知道这是否重要,但我在Windows上测试过。我仍然相信你的代码很好。