我需要使用AngularJS
下载文件。我有Ruby on Rails
个申请。
当用户点击PDF
链接时,我会向服务器发送请求,并向JasperReports Server
发送另一个PDF
[object Object]
请求。
一切正常,但我无法读取文件,只返回$http.get('/my/api/path/' + object.id + '/pdf').then(function (data) {
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:attachment/pdf,' + encodeURI(data.data);
hiddenElement.target = '_blank';
hiddenElement.download = 'test.pdf';
hiddenElement.click();
}, function () {
});
。
服务器返回:
这就是我正在读的这个文件:
AngularJS
我缺少什么?
PS:没有//fallback animation here
@media (-webkit-min-device-pixel-ratio: 0) {
// webkit animation here
}
完美无缺。
答案 0 :(得分:3)
我相信当使用Resource
任何返回的数据时,无论定义的类型如何,都会以某种方式转换为对象。记录data
,我认为您找到一个对象,其中每个键都是一个int (0 .. n)
,每个值都是一个字符。因此,如果回复Hello World
,您的回复看起来就像{0: 'H', 1: 'e', 2: 'l', 3: 'l', 4: ' ', 5: 'W', 6: 'o', 7: 'r', 8: 'l', 9: 'd'}
。
请尝试使用$http
。这不会在任何特殊庄园中处理响应。
答案 1 :(得分:2)
尝试按照this post的解决方案。 $http.get
未正确处理二进制数据。