Agradecería su opinión / consejo sobre lo siguiente
Guión
HTML tiene un apodo de archivo PDF, el extremo posterior tiene URL para cada nick.
La URL del enlace siempre es download.php? What =% PDF_Nick% para garantizar la descarga de clientes con discapacidad JS.
Para los clientes habilitados para JS, hago una llamada a JQuery AJAX y reescribo la URL del enlace de download.php? What =% PDF_Nick% a http://mysite.com/requestedPFF.pdf para activar la descarga desde el cliente. Configuré async: false para permitir que AJAX obtenga una nueva url.
Problema
AJAX devuelve un script válido que reescribe la variable url de JS, pero location.href se ejecuta nuevamente en la url inicial, creando una llamada de fondo adicional
¿Crees que está relacionado con el error que ignora la definición async: false o es un error que cometí y dejé de captar?
Gracias de antemano
Código HTML
<a href = / download.php? what = PDF_A onclick = javascript: descargar ('PDF_A') > Descargar </a>
Código JS
descarga de función (qué) { var url = download.php? what = + qué; $ .ajax ({ tipo: GET, url: download.php? ajax = true, datos: qué = + qué async: falso, dataType: script }); // si AJAX obtuvo la URL de descarga, espero que comience la descarga real: location.href = url; }
Código de fondo (download.php)
$ myPDF = array (); $ myPDF [PDF_A] = PDF_A.pdf; .... $ url = http://misitio.com/. $ myPDF [PDF_A]; ... if ($ _GET [ajax] === true) { // sobrescribe la variable url JS print ('url = '. $ url. ';'); } else { encabezado (Ubicación:. $ url); encabezado (Conexión: cerrar); }