使用 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 没有正确处理二进制数据。