I've got SPA(ember js), and REST API service - php(laravel 5.2).
I'm trying to download pdf document generated on server
That's how i'm generating pdf
$tcpdf->Output({path}, 'I');
if i visit API resource directly in browser everything is fine and file downloads normally.
But when i try to catch response in SPA and initiate download i'm getting empty pdf as a result.
my js download function looks like
this.download(results, 'test.pdf','application/pdf')
download(data, filename, mime) {
var blob = new Blob([data], {type: mime || 'application/octet-stream'});
if (typeof window.navigator.msSaveBlob !== 'undefined') {
// IE workaround for "HTML7007: One or more blob URLs were
// revoked by closing the blob for which they were created.
// These URLs will no longer resolve as the data backing
// the URL has been freed."
window.navigator.msSaveBlob(blob, filename);
}
else {
var blobURL = window.URL.createObjectURL(blob);
var tempLink = document.createElement('a');
tempLink.style.display = 'none';
tempLink.href = blobURL;
tempLink.setAttribute('download', filename);
// Safari thinks _blank anchor are pop ups. We only want to set _blank
// target if the browser does not support the HTML5 download attribute.
// This allows you to download files in desktop safari if pop up blocking
// is enabled.
if (typeof tempLink.download === 'undefined') {
tempLink.setAttribute('target', '_blank');
}
document.body.appendChild(tempLink);
tempLink.click();
document.body.removeChild(tempLink);
window.URL.revokeObjectURL(blobURL);
}
},
results variable is a result file string returned from server.
Can someone point out what is wrong here and why my pdf is empty?
Aucun commentaire:
Enregistrer un commentaire