使用 AngularJS 下载 PDF
Download PDF using AngularJS
我需要使用 AngularJS
下载文件。我有 Ruby on Rails
个应用程序。
当用户点击 PDF
link 时,我会向服务器发送一个请求,然后他又向 JasperReports Server
return 发送一个 PDF
.
一切正常,除了我无法读取文件,它的 return 只有一个 [object Object]
。
服务器return这个:
这就是我正在做的事情来阅读这个文件:
$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 () {
});
我错过了什么?
PS.: 没有AngularJS
完美.
我相信在使用 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
。这不会处理任何特殊庄园中的响应。
尝试遵循 this post 中的解决方案。 $http.get
没有正确处理二进制数据。
我需要使用 AngularJS
下载文件。我有 Ruby on Rails
个应用程序。
当用户点击 PDF
link 时,我会向服务器发送一个请求,然后他又向 JasperReports Server
return 发送一个 PDF
.
一切正常,除了我无法读取文件,它的 return 只有一个 [object Object]
。
服务器return这个:
这就是我正在做的事情来阅读这个文件:
$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 () {
});
我错过了什么?
PS.: 没有AngularJS
完美.
我相信在使用 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
。这不会处理任何特殊庄园中的响应。
尝试遵循 this post 中的解决方案。 $http.get
没有正确处理二进制数据。