微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – XMLHttpRequest 206部分内容

我想从 JavaScript中的XMLHttpRequest对象发出部分内容请求.我正在从服务器加载一个大的二进制文件,我宁愿从服务器流式传输,类似于html5视频的处理方式.

我可以使用setRequestHeader设置Range头. Chrome中的“网络”检查器显示Range标题已成功设置.但是,Accept-Encoding标题设置为“gzip,deflate”,Chrome不会让我设置该标题(来自W3C标准).

有没有什么办法可以强制服务器使用来自XMLHttpRequest对象的206部分内容从javascript进行响应?

解决方法

此范围请求适用于我: http://jsfiddle.net/QFdU4/
var xhr = new XMLHttpRequest;

xhr.onreadystatechange = function () {
  if (xhr.readyState != 4) {
    return;
  }
  alert(xhr.status);
};

xhr.open('GET','http://fiddle.jshell.net/img/logo.png',true);
xhr.setRequestHeader('Range','bytes=100-200'); // the bytes (incl.) you request
xhr.send(null);

您必须确保服务器允许范围请求.你可以用卷曲测试:

$curl -v -r 100-200 http://example.com/movie.mkv > /dev/null

原文地址:https://www.jb51.cc/js/154131.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐