Trying to send simple text string as a file, that being downloaded under certain name upon request. Can't seems to figure out why this code fails.
var text_ready = "This is a content of a txt file."
res.setHeader('Content-type', "application/octet-stream");
res.setHeader('Content-disposition', 'attachment; filename=file.txt');
res.send( new Buffer(text_ready) );
When this code executes, I receive only a XHR response (with that string as a content), but no download is being initiated. But I expected that receiveing this response will force browser to download a file with file.txt
as a name having content of the string above.
How to fix that? What am I doing wrong?
Maybe it will be important: working under Chrome 41 on Windows.
EDIT: it seems that I have to describe a bit deeper. The workflow is the following:
- page contains a table cells with angular
ng-click
events attached to each of them - when clicking a GET request is being sent to "/download" using jQuery's $.get("/download")
- server have route to handle this GET requests
- what I need to achieve is that a certain text string is being send to user and saved as a file (so that a download is being initiated upon click, shortly speaking)
testings
- It works when I navigate manually to that url by entering this url to address bar and pressing enter
- It does not work when I click with mouse on that cell - the request is sent, the response is received but no download is initiated.