zoukankan      html  css  js  c++  java
  • axios ondownloadprogress中total总为零,content-length不返回

    问题:在axios监听ondownloadprogress下载文件进度发现total为0,其实是response header的content-length丢失,content-length丢失之后就导致无法获取到该文件的大小,无法处理下载进度。

    原因:

    原因一、很简单,可能只是后端没有返回content-length,让后端工程师加上就行。

    原因二、开启了gzip。开启gzip之后服务器默认就会开启文件分块编码【Transfer-Encoding: chunked】,分块编码把「报文」分割成若干个大小已知的块,块之间是紧挨着发送的。

    采用这种传输方式进行响应时,没必要带上Content-Length这个首部信息。因为即使带上了也是不准确的,所以content-length会没有。

    解决方式之一:

    后端把文件大小存储到其他字段,比如:header['x-content-length'];

    如有其他方式可以讨论一下。

    参考:

    https://github.com/axios/axios/issues/1591

    https://segmentfault.com/a/1190000006194778

  • 相关阅读:
    赋值运算符重载
    拷贝构造函数
    sizeof与strlen
    C++函数参数为引用或指针
    Largest Rectangle in Histogram
    二极管作用
    yzoj P1948 取数字问题
    NOIP 2016 愤怒的小鸟 题解
    NOIP 2016 蚯蚓 题解
    NOIP 2016 组合数问题 题解
  • 原文地址:https://www.cnblogs.com/kaibo520/p/15380988.html
Copyright © 2011-2022 走看看