【问题标题】:How to redirect after download in Chrome在 Chrome 中下载后如何重定向
【发布时间】:2014-12-04 18:29:27
【问题描述】:
使用下面的代码,我正在尝试更改浏览器页面。
$pdf->Output($pdf_file_name, 'D'); //Downloading PDF
header("Refresh: 3; url='http://example.com/search-form/'");
问题:它在 FireFox 中工作,但在 Chrome 和 IE 中不工作。
我需要在 Chrome/IE 中工作。
【问题讨论】:
标签:
javascript
php
jquery
refresh
meta
【解决方案1】:
你需要在输出之前设置标题,所以反过来做:
header("Refresh: 3; url='http://example.com/search-form/'");
$pdf->Output($pdf_file_name, 'D'); //Downloading PDF
为此,您的浏览器需要支持此标头“操作”。根据请求周期的 http 定义 - 一个请求 - 一个响应,这是一个丑陋的黑客,根本不可能(没有适当的客户端支持)。毕竟,发送额外的标头以在响应之外启动另一个请求需要客户端支持。 - 毕竟我不想依赖那个解决方案。
可靠的解决方案是首先访问您要重定向到的操作,在渲染视图中放置一个不可见的 iframe,并将该源指向您的下载操作,以便在操作渲染后立即启动。
您可以进行更多复杂的设置,包括 javascript 等,以及更多重定向到中间的不同操作,但这很简单。