Mi pregunta es similar a Download and open pdf file using AjaxjQuery Ajax llamado a archivo PDF descarga
Pero no es exactamente el mismo, la razón por la que quiero una ajax jQuery es que mi archivo se genera dinámicamente a partir de los datos que se obtengan de la misma página.
Así que, básicamente, tengo un objeto Json que debe enviarse al servidor que generará dinámicamente un archivo y lo enviará de vuelta al navegador.
No me gustaría utilizar cadenas de consulta en un anclaje con mi objeto Json stringyfied, ya que creo que sería una amenaza potencial ya que las cadenas de consulta tienen restricciones de caracteres (¿estoy aquí?).
Háganme saber Si mi flujo de trabajo es correcto o puedo lograr lo mismo con un flujo diferente.
Darin: ¿qué piensas acerca de generar el archivo en el servidor con una solicitud AJAX GET? Esto me permite detectar cualquier error que ocurra en el servidor durante la generación del archivo en la devolución de llamada fallida y mostrarlo al usuario. Si tiene éxito, paso el nombre de archivo en la devolución de llamada de éxito de ajax y hago 'window.location = server \ folder \ filename'. Estoy trabajando con ASP.NET Web API aquí. –
OP pidió específicamente ajax. Esto es un desperdicio de ancho de banda. – CodeWarrior
@OmarPadilla, no puede descargar archivos usando AJAX al cliente.Pero incluso si eso fuera posible, habría desperdiciado exactamente la misma cantidad de ancho de banda que si hubiera usado un enlace directo para descargar el archivo. La razón simple de esto es que en ambos casos está llamando al mismo punto final en el servidor que está devolviendo el mismo archivo. Y no se deje engañar por pensar que si no usa AJAX, la página actual * recargará *. No hay solicitudes adicionales aparte de la acción del controlador que transmitirá el archivo. –