有從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