我有应该读取响应流并填充进度栏的代码。服务器响应正确。问题是updateProgress
事件未触发。
function load_binary_resource(url) {
var req = new XMLHttpRequest();
req.open('GET', url, false);
req.addEventListener("progress", updateProgress);
req.overrideMimeType('text\/plain; charset=x-user-defined');
req.send(null);
if (req.status != 200) return '';
return req.responseText;
}
function updateProgress (oEvent) {
if (oEvent.lengthComputable) {
console.log('loading');
var percentComplete = oEvent.loaded / oEvent.total * 100;
// ...
} else {
console.log('something happening');
}
}
答案 0 :(得分:2)
尝试更改您的
req.addEventListener("progress", updateProgress);
为
req.upload.addEventListener('progress', updateProgress, false);
下载传输和上传传输均存在进度事件。下载事件在XMLHttpRequest对象本身上触发。根据{{3}}
在XMLHttpRequest.upload对象上触发上载事件希望这会有所帮助!