¿Es posible forzar una descarga a través de JS o Javascript, es decir, la página web no debe abrir el archivo en una nueva pestaña en el navegador, sino que debe aparecer para permitir que el usuario elija "guardar como" o abrir con ???
Con la llegada de HTML5, solo podía usar la descarga de la nueva propiedad en la etiqueta de anclaje.
El código se verá algo como
<a download="name_of_downloaded_file" href="path/to/the/download/file"> Clicking on this link will force download the file</a>
Funciona en la última versión de Firefox y Chrome. ¿Debo mencionar que no lo verifiqué en IE? :PAG
Editado el atributo de descarga después del comentario de sstur
enlace de creación dinámica y haga clic en él con el atributo de descarga para forzar la descarga como archivo:
var anchor = document.createElement('a'); anchor.href = this.props.download_url; anchor.target = '_blank'; anchor.download = this.props.file_name; anchor.click();
Tenga en cuenta que ni siquiera lo agregué a DOM, por lo que es rápido.
El atributo de download
de PS no funcionará con IE. Pero solo abrirá el enlace en una nueva pestaña. http://caniuse.com/#feat=descargar
No puede forzar ese comportamiento desde JavaScript, los encabezados HTTP deben configurarse en el lado del servidor:
Content-disposition=attachment; filename=some.file.name
La forma en que puede resolver el problema es dejar que su método AJAX redirija al usuario a la URL del PDF:
location.replace('path/to.pdf');
(Los encabezados HTTP anteriores deben configurarse para el PDF)
Actualizar
En el momento de esta respuesta, no era posible. Ahora lo es, desplácese hacia abajo para ver la otra respuesta que lo dice .