使用a标签下载文件时要设置请求头如带上用于鉴权的token

正常的是:filename

为了方便设置请求头,我们可以换一种思路,因为原生的请求方式XMLHttpRequest或者ajax是很方便的设置头部信息的

即:通过ajax获取文件数据---->在动态设置a标签下载

代码如下:

updateFile(file) {

      var xhr = new XMLHttpRequest();

      xhr.open('GET', '文件地址', true);

      xhr.setRequestHeader("X-Authorization", localStorage.getItem('token'));

      xhr.responseType = 'blob';

      xhr.onload = function (e) {

        //如果请求执行成功

        if (this.status == 200) {

            var blob = this.response;

            var filename = file.alias;

            var a = document.createElement('a');

            // blob.type = "application/octet-stream";

            //创键临时url对象

            var url = URL.createObjectURL(blob);

            a.href = url;

            a.download=filename;

            a.click();

            //释放之前创建的URL对象

            window.URL.revokeObjectURL(url);

        }

      };

      //发送请求

      xhr.send();

    }

你可能感兴趣的:(使用a标签下载文件时要设置请求头如带上用于鉴权的token)