基本上,我遇到的问题是我向服务器询问是否返回以JSON格式返回的pdf文件。
我试图创建一个HTML元素来自动下载pdf(这不是问题),问题是无法打开下载的pdf,因为它失败并报告错误,例如在Adobe Reader中:
“Adobe读者无法打开'test.pdf',因为要么不是 支持的文件类型或因为文件已损坏(例如, 它是作为电子邮件附件发送的,未被正确解码)“
我正在使用AngularJS对服务器进行ajax调用以获取JSON对象,然后尝试格式化并下载它:
...
var pdf = pdfservice.get({id:pdfId});
console.log(pdf);
pdf.$promise.then(function(data){
var element = angular.element('<a/>');
element.attr({
href: 'data:attachment/pdf;charset=utf-8,' + encodeURI(data),
target: '_self',
download:'test.pdf'
})[0].click();
});
...
使用Angular中的$ http服务并使用相同的代码,它会下载pdf但它是空的,所以可能是编码或格式化json对象的问题......
...
$http({ method: 'GET', url: 'http://www.testweb.com/pdf/1')
.success(function(data) {
console.log(data);
var element = angular.element('<a/>');
element.attr({
href: 'data:attachment/pdf;charset=utf-8,' + encodeURI(data),
target: '_self',
download:'test.pdf'
})[0].click();
});
...