My javascript code makes the following AJAX request to my node.js server:
var url = '/node/download';
var downloadRequest = new goog.net.XhrIo();
downloadRequest.headers.set('content-type', 'application/json');
downloadRequest.send(url);
My node.js server creates pdf in node and passes the PDF back to the client using the following code:
var filestream = fs.createReadStream(pdfpath);
res.writeHead(200, {
'Content-disposition': 'attachment; filename=' + filename,
"Content-Type":"application/pdf","Content-Transfer-Encoding": "binary"});
filestream.on('data', function(chunk) {
res.write(chunk);
});
filestream.on('end', function() {
res.end();
});
But now I am having problems with how to get this answer back on the javascript client to open a download prompt so that the user can download and save the file in pdf format.
Please, help!
Thanx in advance!
PS Plz also offers a better way to implement my node code (if any)
Edit: One possible solution is to send my request as follows:
window.location.assign('/node/download');
This way I get a download prompt and everything works fine, except that the asynchronous nature of the product is sacrificed. Is there any work for this so that I can maintain asynchrony?