no se muestra el diálogo de descarga

No puedo obtener un cuadro de diálogo de descarga en lugar de descargar directamente un archivo en mi aplicación de nodo.

Mi código problemático se ve así:

app.get(`/search/download`, function(req, res){ var request = require(`request`); request({uri: `http://some.csv.file`, headers: {`content-type`: `text/csv`}} , function(err, response, body) { res.set(`Content-Disposition`, `attachment; filename="search-results.csv"`); res.set(`Content-Type`, `text/csv`); res.send(body); }); } 

No importa lo que cambie, tanto Chrome como Safari descargan el archivo inmediatamente en lugar de abrir un cuadro de diálogo de guardado.

Cambie el tipo de contenido de text/csv a application/octet-stream .

 app.get(`/search/download`, function(req, res){ var request = require(`request`); request({uri: `http://some.csv.file`, headers: {`content-type`: `text/csv`}} , function(err, response, body) { res.set(`Content-Disposition`, `attachment; filename="search-results.csv"`); res.set(`Content-Type`, `application/octet-stream`); res.send(body); }); } 

Hay una forma más fácil de hacer lo mismo (si el archivo servido es estático):

 app.use(express.static(__dirname + '/some.csv.file', { setHeaders: function(res, path) { res.set('Content-Disposition', 'attachment; filename="search-results.csv"'); res.set('Content-Type', 'application/octet-stream'); } }) 
    Intereting Posts