通过XMLHttpRequest读取响应流

时间:2018-07-06 06:54:05

标签: javascript xmlhttprequest

我有应该读取响应流并填充进度栏的代码。服务器响应正确。问题是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');
    }
}

1 个答案:

答案 0 :(得分:2)

尝试更改您的

req.addEventListener("progress", updateProgress);

req.upload.addEventListener('progress', updateProgress, false);

下载传输和上传传输均存在进度事件。下载事件在XMLHttpRequest对象本身上触发。根据{{​​3}}

在XMLHttpRequest.upload对象上触发上载事件

希望这会有所帮助!