use*_*702 2 javascript escaping binaryfiles download angularjs
我想从 Spring 服务下载带有 angularjs (1.0.8) 的文件。我使用 POST 请求是因为我必须传递一段 HTML 作为参数,并且浏览器对查询字符串的长度有限制。这是我的代码:
$http({
method: 'POST',
url: '/export/pdf',
data: "html=" + graphHtml.outerHTML,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformResponse: function(data, headersGetter){
return data;
}
}).success(function(data) {
console.log("Type '" + typeof(data) + "'");
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:application/pdf,' + data;
hiddenElement.target = '_blank';
hiddenElement.download = 'myFile.pdf';
hiddenElement.click();
});
Run Code Online (Sandbox Code Playgroud)
我注意到收到的“数据”已经是“字符串”格式了!我看到很多(?)问题点,当输入
typeof(data)
Run Code Online (Sandbox Code Playgroud)
我收到“字符串”。我不希望对我的原始数据进行这种解释。当我尝试在文件中写入数据时,大小是原始文件的两倍!我知道它是用于二进制数据的“字符串解释”,而不是希望读取为二进制数据。有没有人有解决方案以原始格式而不是字符串形式查看“数据”?
在 $http 配置对象中,指定
响应类型:“blob”获取以二进制格式返回的响应数据。
否则,默认响应格式是字符串。有关响应类型的其他选择,请参阅 AngularJS API 参考。
| 归档时间: |
|
| 查看次数: |
6390 次 |
| 最近记录: |