прерывание 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. |