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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...