有从JavaScript请求web资源的特定部分(如第100个字节)异步的方式?请求的Web资源的特定部分异步
我会认为这可能是通过XmlHttpRequest
通过设置Range
插头来实现。但是,如果服务器应用的内容编码(其中大多数都默认情况下),字节范围将适用于编码数据,而不是原来的。每HTTP/1.1:
当实体体被包括一个消息时,该 体的数据类型通过报头字段的内容类型和内容 - 编码确定。这些定义的两层,编码有序模型:
entity-body := Content-Encoding(Content-Type(data))
在HTTP字节范围规范适用于字节的序列中 实体主体[...]。
这使得检索到的内容无用,因为如果不检索(并连接)编码资源的其余部分就无法对其进行解码。
显然不可能从客户端禁用内容编码,因为XMLHttpRequest
prohibitsAccept-Encoding
被更改。
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() { /* ... */ };
xhr.open("GET", url, true);
xhr.setRequestHeader("Range", "bytes=0-99");
xhr.setRequestHeader("Accept-Encoding", "identity"); // not allowed
xhr.send();
是否有另一种方法实现这一点(假设内容编码不能在服务器上禁用)?
感谢您的回答!我将调查它是否可以发出'Accept-Encoding:identity'标题并回传。 – Douglas 2014-11-04 22:18:01