我们希望使用Ajax读取其中的一部分远程文件。 如果没有像PHP这样的服务器端技术,我们如何才能使用JS呢?
我认为我需要使用HTTP Range标头,但是如何使用Ajax设置它?是否可以在Ajax中设置HTTP头?
答案 0 :(得分:2)
您可以通过setRequestHeader
设置XML请求的标头,例如如果xhr
是XMLHttpRequest
个实例:
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个字符?在我的测试中可能是一个字节与字符的东西。