【发布时间】:2020-05-26 03:34:02
【问题描述】:
我必须调用远程服务来下载 gzip 压缩文件 (csv.gz)。 我必须使用 jQuery,因为我必须设置 Authentication HTTP 标头。 我尝试过这样的事情:
$.ajax({
type: "GET",
url: url
}).done(function (res) {
const a = document.createElement('a');
a.style = 'display: none';
document.body.appendChild(a);
const blob = new Blob([res]);
const url = URL.createObjectURL(blob);
a.href = url;
a.download = _this.attributes.id + '.' + _DEFAULT_DOWNLOADED_FILE_EXTENTION;
a.click();
URL.revokeObjectURL(url);
}).fail(function (err) { });
我可以下载该文件,但下载后,我尝试在我的电脑上解压缩,但文件不正确(已损坏)。可能我使用的 Blob 创建不正确。
【问题讨论】:
-
二进制数据以
Content-type: application/octet-stream发送。您可能必须在 jQuery 请求中或在创建 Blob 时声明这一点。
标签: javascript jquery ajax blob