XMLHttpRequest 2下载进度事件仅触发一次

5

我正在尝试通过以下代码获取ajax请求的进度:

var xhr = new XMLHttpRequest();


xhr.addEventListener('progress', function(event) {

    console.log(event.loaded / event.total);
},
false);

xhr.addEventListener('load', function() {

    console.log('load');
},
false);


xhr.open('get', 'test.php', true);
xhr.send();

问题在于,进度事件只会在加载事件之前触发一次(也就是说,在Webkit中,它似乎在Gecko下不起作用)。
我是做错了什么还是它没有得到适当的支持?

你在本地测试吗? - zatatatata
是的,但远程主机给出了相同的结果。 - DADU
2
也许这可以帮助你:https://dev59.com/zXVD5IYBdhLWcg3wI36L - Fabian
请确保您的Web服务器已配置发送内容长度标头。 - Gerben
@Gerben 在 Firebug 中检查了 Ajax 请求,发现 content-length 头已经设置。 - DADU
显示剩余4条评论
1个回答

11

使用

xhr.upload.addEventListener('progress', function(event) { ... });

(note the added .upload)


4
OP在问题中提到了“下载”,您的回答将提供有关上传部分的信息。 - Ross

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接