<bdo id='S0NtA'></bdo><ul id='S0NtA'></ul>
    1. <small id='S0NtA'></small><noframes id='S0NtA'>

      <i id='S0NtA'><tr id='S0NtA'><dt id='S0NtA'><q id='S0NtA'><span id='S0NtA'><b id='S0NtA'><form id='S0NtA'><ins id='S0NtA'></ins><ul id='S0NtA'></ul><sub id='S0NtA'></sub></form><legend id='S0NtA'></legend><bdo id='S0NtA'><pre id='S0NtA'><center id='S0NtA'></center></pre></bdo></b><th id='S0NtA'></th></span></q></dt></tr></i><div id='S0NtA'><tfoot id='S0NtA'></tfoot><dl id='S0NtA'><fieldset id='S0NtA'></fieldset></dl></div>
      <tfoot id='S0NtA'></tfoot>
    2. <legend id='S0NtA'><style id='S0NtA'><dir id='S0NtA'><q id='S0NtA'></q></dir></style></legend>
      1. XMLHttpRequest 206 部分内容

        时间:2023-10-15
        • <small id='cn2c0'></small><noframes id='cn2c0'>

            <bdo id='cn2c0'></bdo><ul id='cn2c0'></ul>
            <tfoot id='cn2c0'></tfoot>

                  <tbody id='cn2c0'></tbody>
                • <i id='cn2c0'><tr id='cn2c0'><dt id='cn2c0'><q id='cn2c0'><span id='cn2c0'><b id='cn2c0'><form id='cn2c0'><ins id='cn2c0'></ins><ul id='cn2c0'></ul><sub id='cn2c0'></sub></form><legend id='cn2c0'></legend><bdo id='cn2c0'><pre id='cn2c0'><center id='cn2c0'></center></pre></bdo></b><th id='cn2c0'></th></span></q></dt></tr></i><div id='cn2c0'><tfoot id='cn2c0'></tfoot><dl id='cn2c0'><fieldset id='cn2c0'></fieldset></dl></div>

                  <legend id='cn2c0'><style id='cn2c0'><dir id='cn2c0'><q id='cn2c0'></q></dir></style></legend>
                  本文介绍了XMLHttpRequest 206 部分内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

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

                  I would like to issue a partial content request from an XMLHttpRequest object in javascript. I'm loading a large binary file from the server, and I'd rather stream it from the server similar to how html5 video is handled.

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

                  I can use setRequestHeader to set the Range header. The Network inspector in Chrome shows that the Range header is set successfully. However, the Accept-Encoding header is set to "gzip,deflate", and Chrome will not let me set that header (from W3C standards).

                  有什么方法可以强制服务器只响应来自 javascript 的 XMLHttpRequest 对象的 206 部分内容?

                  Is there any way to force the server to respond with a 206 partial content from the XMLHttpRequest object only from javascript?

                  推荐答案

                  我想我知道为什么 206 请求不起作用了.启用 gzip 压缩后,如果可以对传出数据进行 gzip 压缩,则范围标头将被忽略.

                  I think I figured out why the 206 request wasn't working. With gzip compression enabled, the range header gets ignored if the outgoing data can be gzipped.

                  我请求的文件是一个大型二进制文件,nginx 将其解释为具有 mimetype application/octet-stream.这是被 gzip 压缩的 mimetype 之一.如果我将文件重命名为 .png 文件类型,则图像/png mimetype 不会被压缩,因此范围请求可以正常工作.

                  The file I was requesting was a large binary file, which nginx interpreted as having mimetype application/octet-stream. This is one of the mimetypes that gets gzipped. If I renamed the file to have a .png filetype, the image/png mimetype is not gzipped, and hence the range request works correctly.

                  这也是为什么将带有 curl 的 Accept-Encoding 标头设置为 identity 也允许范围请求正常工作的原因.但是,我无法从 XHR 更改该标题.

                  This is also why setting the Accept-Encoding header with curl to identity also allows the range request to work fine. However, I cannot change that header from an XHR.

                  解决方案:更改服务器上的 mimetype 表!

                  Solution: Change the mimetype table on the server!

                  这篇关于XMLHttpRequest 206 部分内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:XMLHttpRequest 的 getResponseHeader() 的限制? 下一篇:NETWORK_ERROR:XMLHttpRequest 异常 101

                  相关文章

                  最新文章

                    <bdo id='NjfnF'></bdo><ul id='NjfnF'></ul>
                  <i id='NjfnF'><tr id='NjfnF'><dt id='NjfnF'><q id='NjfnF'><span id='NjfnF'><b id='NjfnF'><form id='NjfnF'><ins id='NjfnF'></ins><ul id='NjfnF'></ul><sub id='NjfnF'></sub></form><legend id='NjfnF'></legend><bdo id='NjfnF'><pre id='NjfnF'><center id='NjfnF'></center></pre></bdo></b><th id='NjfnF'></th></span></q></dt></tr></i><div id='NjfnF'><tfoot id='NjfnF'></tfoot><dl id='NjfnF'><fieldset id='NjfnF'></fieldset></dl></div>
                  <tfoot id='NjfnF'></tfoot>

                • <small id='NjfnF'></small><noframes id='NjfnF'>

                  <legend id='NjfnF'><style id='NjfnF'><dir id='NjfnF'><q id='NjfnF'></q></dir></style></legend>