如何在Chrome中下载后重定向

时间:2014-12-04 18:29:27

标签: javascript php jquery refresh meta

使用以下代码我正在尝试更改浏览器页面。

$pdf->Output($pdf_file_name, 'D');   //Downloading PDF

header("Refresh: 3; url='http://example.com/search-form/'");

问题:它在FireFox中工作,但在Chrome和IE中无效。

我需要在Chrome / IE中使用它。

1 个答案:

答案 0 :(得分:0)

你需要在输出之前设置标题,所以只需反过来这样做:

header("Refresh: 3; url='http://example.com/search-form/'");

$pdf->Output($pdf_file_name, 'D');   //Downloading PDF

为此,您的浏览器需要支持此标题"操作"。根据请求周期的http定义 - 一个请求 - 一个响应,这是一个丑陋的黑客并且根本不可能(没有适当的客户端支持)。发送额外的标头以在响应旁边启动另一个请求,毕竟需要客户端支持。 - 毕竟我不想依赖那个解决方案。

可靠的解决方案是首先访问您要重定向到的操作,在呈现的视图中放置一个不可见的iframe,并将该源指向您的下载操作,以便在呈现操作后立即启动。

你可以做更多更软化的设置,包括javascript等,以及更多重定向到中间的不同动作,但这很简单。