Tengo el siguiente punto final:
baseurl.com/api/v1/datasheet/formato
Al acceder a esta URL, se descargará información específica basada en la hoja de datos. En Express, por ejemplo, devuelvo este método si el formato = json:
const generateJSON = (res, data) => { res.header('Content-Type', 'application/json'); res.attachment('example.json'); return res.send(data); }Esto funciona bien, pero descarga automáticamente el archivo como "example.json" sin pedir permiso al usuario para descargar el archivo.
Mi propósito es tener un botón en mi interfaz (usando NextJS) que le preguntará al usuario si quiere descargar el archivo (la descarga clásica o cancelar la descarga) y luego abrir el explorador de archivos, etc.
¿Cómo puedo hacer esto? ¿Es esto algo del backend o del frontend?
Uso Content-disposition: attachment; filename=example.json para activar un cuadro de diálogo Guardar como .
const generateJSON = (res, data) => { res.header('Content-Type', 'application/json'); res.header('Content-disposition', 'attachment'); res.attachment('example.json'); return res.send(data); }El primer parámetro en el contexto HTTP está en línea (valor predeterminado, lo que indica que se puede mostrar dentro de la página web o como la página web) o adjunto (lo que indica que debe descargarse; la mayoría de los navegadores presentan un cuadro de diálogo "Guardar como", prellenado). con el valor de los parámetros de nombre de archivo si están presentes).
a través de https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition#:~:text=The%20first%20parameter,parameters%20if%20present ).