Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   прерывание ajax запроса (https://javascript.ru/forum/misc/12299-preryvanie-ajax-zaprosa.html)

belbek 11.10.2010 12:18

прерывание ajax запроса
 
можно ли сделать ajax post к php файлу в этом файле сформировать некий отчет, в этом же файле "отрубить" ajax сделать редирект, кинуть заголовки и просто отдать файл на скачивание(на jquery может кто подскажет реализацию).
т.е. еще раз кратко: post ajaxom(насколько я знаю в jquery нет безаяксового post), отказываемся от отдачи ajaxom на стороне принявшего запрос скрипта, и просто отдаем файл на скачивание.

Octane 11.10.2010 12:40

Со стороны сервера вызвать редирект страницы, с которой был сделан асинхронный запрос с помощью XMLHttpRequest, не получится.

micscr 12.10.2010 09:45

Я делал такое недавно. Но по другому.
Если идет такой запрос, то формирую на 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.