使用以下代码我正在尝试更改浏览器页面。
$pdf->Output($pdf_file_name, 'D'); //Downloading PDF
header("Refresh: 3; url='http://example.com/search-form/'");
问题:它在FireFox中工作,但在Chrome和IE中无效。
我需要在Chrome / IE中使用它。
答案 0 :(得分:0)
你需要在输出之前设置标题,所以只需反过来这样做:
header("Refresh: 3; url='http://example.com/search-form/'");
$pdf->Output($pdf_file_name, 'D'); //Downloading PDF
为此,您的浏览器需要支持此标题"操作"。根据请求周期的http定义 - 一个请求 - 一个响应,这是一个丑陋的黑客并且根本不可能(没有适当的客户端支持)。发送额外的标头以在响应旁边启动另一个请求,毕竟需要客户端支持。 - 毕竟我不想依赖那个解决方案。
可靠的解决方案是首先访问您要重定向到的操作,在呈现的视图中放置一个不可见的iframe,并将该源指向您的下载操作,以便在呈现操作后立即启动。
你可以做更多更软化的设置,包括javascript等,以及更多重定向到中间的不同动作,但这很简单。