zoukankan      html  css  js  c++  java
  • js通过HEAD请求方式提前获取下载文件大小,XMLHttpRequest和ajax两种实例

    HTTP 中定义了 7 种请求方式:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

    【GET:获取资源】【POST:传输实体文本】【HEAD:获得报文首部】【PUT:传输文件】【DELETE:删除文件】【OPTIONS:询问支持的方法】【TRACE:追踪路径】【CONNECT:要求用隧道协议连接代理】

    下面我们使用HEAD方式来实现在下载文件前通过获得返回报文的头部来获取文件大小:

    var url = 'http://'; //文件下载链接
    var fileSize = 0; //下载文件大小    
    var xhr = new XMLHttpRequest();
        xhr.open('HEAD', url, true);    // 也可用POST方式
        xhr.onreadystatechange = () => {
         if (xhr.readyState == 4) {
           if (xhr.status == 200) {
             fileSize = xhr.getResponseHeader('Content-Length');
             console.log(fileSize)
           } else {
             alert('ERROR');
           }
         }
        };
        xhr.send()

     这种发放在业务逻辑中一般用来获取后台通过报文头部传递的参数,不只是来获取文件大小。

    ajax方式的代码如下:

                 $.ajax({
                    url: item.m3u8Url,
                    async: false,
                    timeout: 2000,
                    // type: 'HEAD',
                    complete: function( xhr,data ){
                      console.log(xhr.getResponseHeader("hls-next"));
                      hlsNext = Math.floor(xhr.getResponseHeader("hls-next")/1000)
                      console.log('hlsNext',hlsNext)
                    }
                  });
  • 相关阅读:
    Mysql多实例配置
    Mysql多实例主从复制
    粪发涂墙-321
    粪发涂墙-123
    SpringCloud-粪发涂墙90
    线上BUG定位神器(阿尔萨斯)-Arthas2019-0801
    confluence-工具安装
    新应用启动之类冲突-2019-7-26
    新项目组之应用启动-2019-07-25
    新装虚拟机-2019-07-24日记
  • 原文地址:https://www.cnblogs.com/toggle/p/12186533.html
Copyright © 2011-2022 走看看