Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:如何从二进制字符串创建Blob?_Javascript_Jquery_Ajax - Fatal编程技术网

JavaScript:如何从二进制字符串创建Blob?

JavaScript:如何从二进制字符串创建Blob?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我想从我的备份下载一个受保护的文件-我必须发送授权头,所以我不能直接链接它。我创建了以下Ajax请求来下载它: Ember.$.ajax({ url: self.get("file.filepath"), type: "GET", beforeSend: function(xhr) { xhr.setRequestHeader(header, content); }, processData: false, succes

我想从我的备份下载一个受保护的文件-我必须发送授权头,所以我不能直接链接它。我创建了以下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,但没有效果。我做错了什么?

我今天也有同样的问题 这是一个角度代码,但也许有什么东西可以帮你

return $http({
    url: host + "api/map/rectangleMap",
    method: 'POST',
    data: angular.toJson(coords),
    responseType: 'blob',
    transformResponse: function(data){
        return new Blob([data], {type: 'image/png'});
    }
});

guest271314的答案中有一个正确的答案-这是我能找到的唯一有效的解决方案。

尝试使用
XMLHttpRequest
,将
responseType
设置为
“blob”
URL.createObjectURL()
,非常感谢-这很有效!