【发布时间】:2016-02-10 17:36:00
【问题描述】:
我想从我的后台下载一个受保护的文件 - 我必须发送授权标头,所以我无法直接链接它。我创建了以下 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(),见stackoverflow.com/questions/12876000/… -
非常感谢 - 这行得通!
标签: javascript jquery ajax