使用此代码,我的pdf名称不正确:一串随机字母,如uuid。 这个问题似乎只适用于IE 10 / Edge。 AngularJS的1.4.7版
this.downloadPdf = function(pdfName){
console.log(pdfName);
$http.get(config.UrlApi + "/pdf/"+ pdfName.nameFile, { responseType: 'arraybuffer' });
var a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.target = '_blank';
a.download = pdfName.name;
document.body.appendChild(a);
a.click();
});
答案 0 :(得分:0)
使用Blob界面:
function build(response)
{
var bb = new Blob([response.data], { type: "application/pdf"});
if (URL && URL.hasOwnProperty("createObjectURL") )
{
var url = URL.createObjectURL(bb);
}
else if (window.navigator.msSaveOrOpenBlob)
{
window.navigator.msSaveOrOpenBlob(bb, 'foo.pdf');
}
}
$http.get(config.UrlApi + "/pdf/"+ pdfName.nameFile, { responseType: 'arraybuffer' }).then(build);
Blob网址受原始政策约束。这意味着它们只能用于与运行创建URL的脚本的文档具有相同原始站点的文档。如果需要使用在不同域中运行的
<iframe>
的blob对象,则必须使用postMessage API将blob数据发送到框架,然后在那里创建blob:url。
<强>参考强>