我想从我的备份中下载一个受保护的文件 - 我必须发送授权头,所以我不能直接链接它。我已经创建了以下Ajax请求来下载它:
Ember.$.ajax({
url: self.get("file.filepath"),
type: "GET",
beforeSend: function(xhr) {
xhr.setRequestHeader(header, content);
},
processData: false,
success: function (result, a, xhr) {
var blob = new Blob([result], {type: xhr.getResponseHeader("content-type") || ""});
saveAs(blob, self.get("file.filename"));
}
});
在处理文本文件时一切正常。但是当我尝试下载二进制文件(图片)时,我得到的是完全无用的东西(即使响应中的二进制字符串在控制台上打印出来对我来说似乎是正确的)。因此,我认为构建blob存在问题。
我尝试过使用Int8Array,但这并没有帮助。我做错了什么?
XMLHttpRequest
,将responseType
设置为"blob"
,并使用URL.createObjectURL()
。请参考https://dev59.com/mmcs5IYBdhLWcg3waTND。 - guest271314