Intento descargar un archivo usando nodejs y Javascript. Cuando llamo a la URL en el navegador, el archivo se descarga. Cuando llamo a este Endpoint en mi archivo javascript usando fetch, la descarga no funciona
Punto final de NodeJS
app.get("/download", function (req, res, next) { res.download( filepath ); });
Llamada Javascript
const downloadFile = async (path) => { await fetch("http://localhost:8080/download", { method: "Get", }) .then((response) => { console.log(response); }) .catch((error) => { console.log(error); });
};
¿Tienes alguna sugerencia?
¡Muchos gracias!
Cuando realiza una solicitud con Ajax, la respuesta se devuelve al código JavaScript para su manejo.
Si desea hacer algo con el archivo que el servidor le ha enviado, debe escribir JavaScript para hacer algo con él.
Su JavaScript registra el objeto de respuesta y luego se detiene.
El navegador solo lo mostrará automáticamente en la ventana gráfica / lo guardará para descargas si escribe la URL en la barra de direcciones / hace clic en un enlace / etc. Hacer Ajax evita explícitamente ese manejo automático.
Entonces, la solución aquí es: no use Ajax. Use un enlace o asigne un valor a location
, etc.