Estoy enviando datos JSON a un servidor. El servidor genera un archivo PDF y responde con la URL a ese archivo PDF. Luego hago otra solicitud al servidor para descargar el archivo PDF. Para realizar la descarga, creo un iframe oculto y establezco el origen en la URL del PDF. Tenga en cuenta que quiero que el navegador del usuario permanezca en la misma página y se descargue en segundo plano. Se pueden encontrar más detalles sobre lo que estoy haciendo y la solución que encontré en this SO question.Error de Chrome al descargar el archivo a través del iframe
Cada vez que uso esta técnica en Chrome, todo funciona bien. Pero al mirar la consola del desarrollador de Chrome, veo el mensaje de error Failed to load resource
. ¿Hay alguna manera de hacer esto de manera diferente para que no obtenga estos errores?
Puede verse un muy simple y funcional example of the problem in action en jsfiddle. Simplemente haga clic en el botón Descargar PDF y mire su consola de Chrome.
El código de esa página es el siguiente:
$(document).ready(function() {
var downloadFile = function(url){
var iframe = $("iframe#download");
if (!iframe.length) {
iframe = $("<iframe id='download' style='display:none;'/>");
$("body").append(iframe);
}
iframe.attr("src", url);
};
$("button").click(function() {
downloadFile("http://www.education.gov.yk.ca/pdf/pdf-test.pdf");
});
});
Si saca la "pantalla: ninguna"; funciona para mí en Chrome Stable para Mac. Creo que tiene algo que ver con el hecho de que Chrome está intentando abrir el PDF usando un visor de PDF incorporado. Tal vez intente cambiar el tipo de contenido de la respuesta de application/pdf a application/octet-stream para que simplemente lo trate como un archivo normal y lo descargue. –