прерывание ajax запроса
можно ли сделать ajax post к php файлу в этом файле сформировать некий отчет, в этом же файле "отрубить" ajax сделать редирект, кинуть заголовки и просто отдать файл на скачивание(на jquery может кто подскажет реализацию).
т.е. еще раз кратко: post ajaxom(насколько я знаю в jquery нет безаяксового post), отказываемся от отдачи ajaxom на стороне принявшего запрос скрипта, и просто отдаем файл на скачивание. |
Со стороны сервера вызвать редирект страницы, с которой был сделан асинхронный запрос с помощью XMLHttpRequest, не получится.
|
Я делал такое недавно. Но по другому.
Если идет такой запрос, то формирую на php файл для скачки(временный), а клиенту возвращаю флаг, что сохранение файла: else if (resp == 'FileGetOK_') { // сохраняем document.location = 'savefile.php'; document.location - это уже вызовется диалог сохранения файла. Имя файла через сессию передаем. savefile.php: session_start(); $f = (isset($_SESSION['loadfile'])) ? $_SESSION['loadfile'] : 'xxx.xxx'; unset($_SESSION['loadfile']); if (file_exists($f)) { $fn = (isset($_SESSION['loadfilename'])) ? $_SESSION['loadfilename'] : 'report' . mt_rand(100, 1000) . '.xls'; header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment;filename=" . $fn); echo file_get_contents($f); unlink($f); } |
Часовой пояс GMT +3, время: 00:00. |