读取远程文件的一部分

Read part of remote file

本文关键字:一部分 文件 程文件 读取      更新时间:2023-09-26

有一个远程文件,我们想使用Ajax读取其中的一部分。如果没有像PHP这样的服务器端技术,我们怎么能只使用JS呢?

我想我需要使用HTTPRange标头,但是如何使用Ajax设置它呢?是否可以在Ajax中设置HTTP头?

您可以通过setRequestHeader设置XML请求的标头,例如,如果xhrXMLHttpRequest实例:

xhr.setRequestHeader('HeaderName', 'HeaderValue');

我刚刚测试了它,这给了我请求的文件的前56个字符:

var xhr = new XMLHttpRequest();
xhr.open("get", "thefile");
xhr.setRequestHeader("Range", "bytes=0-100");
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        $("<p>").text("status = " + xhr.status + ", length = " + xhr.responseText.length + ", text = " + xhr.responseText).appendTo(document.body);
    }
};
xhr.send();

请注意,状态返回为206(部分内容),而不是200。

为什么是56个字符?在我的测试中,可能是字节对字符的问题。