Буду признателен за ваше мнение / совет по поводу следующего
Сценарий
В HTML есть псевдоним PDF-файла, в конце есть URL для каждого ник.
URL-адрес ссылки всегда является download.php? What =% PDF_Nick%, чтобы обеспечить загрузку для отключенных клиентов JS.
Для клиентов с поддержкой JS я выполняю вызов JQuery AJAX и переписываю URL ссылки с download.php? Чем =% PDF_Nick% до http://mysite.com/requestedPFF.pdf, чтобы активировать загрузку с клиента. Я установил «async: false», чтобы позволить AJAX получить новый URL.
Задача
AJAX возвращает действительный сценарий, переписывающий переменную URL-адреса JS, но location.href снова запускается до исходного URL, создавая дополнительный внутренний вызов
Как вы думаете, это связано с ошибкой игнорирования определения "async: false" или с моей ошибкой, которую я пропустил и пропустил?
Заранее спасибо
HTML код
<a href="/download.php?what=PDF_A" onclick="javascript:download
('PDF_A')">Download</a>
JS код
function download ( what ) {
var url = "download.php?what="+what;
$.ajax({
type: "GET",
url: "download.php?ajax=true",
data: "what=" + what
async: false,
dataType: "script"
});
// if AJAX got the download URL I expect actual download to start:
location.href = url;
}
Код серверной части (download.php)
$myPDF = array();
$myPDF["PDF_A"] = "PDF_A.pdf";
....
$url = "http://mysite.com/" . $myPDF["PDF_A"];
...
if ( $_GET["ajax"] === "true" ) {
// overwrite JS url variable
print('url = "'.$url.'";');
} else {
header("Location: ". $url );
header("Connection: close");
}