С кодом ниже я пытаюсь изменить страницу браузера.
$pdf->Output($pdf_file_name, 'D'); //Downloading PDF
header("Refresh: 3; url='http://example.com/search-form/'");
Проблема: она работает в FireFox, но не работает в Chrome и IE.
Мне нужно работать в Chrome / IE.
Вам нужно установить заголовки перед выводом, так что просто сделайте это наоборот:
header("Refresh: 3; url='http://example.com/search-form/'");
$pdf->Output($pdf_file_name, 'D'); //Downloading PDF
Чтобы это работало, ваш браузер должен поддерживать этот заголовок «action». Это ужасный хак и просто невозможен (без надлежащей поддержки клиента) таким образом, как определено в http цикла запроса — один запрос — один ответ. Отправка дополнительных заголовков для запуска другого запроса помимо ответа требует поддержки клиента. — Я бы не хотел полагаться на это решение в конце концов.
Твердым решением было бы в первую очередь получить доступ к действию, на которое вы хотите перенаправить, поместить невидимый iframe в отображаемое представление и указать этот источник для вашего действия загрузки, чтобы оно началось, как только действие будет визуализировано.
Вы могли бы сделать намного больше изощренных установок, включая javascript и тому подобное, и больше перенаправлять на различные промежуточные действия, но это довольно просто.
Других решений пока нет …