Chrome重定向在Chrome上显示为空白

时间:2017-09-01 15:09:49

标签: php google-chrome pdf redirect

我遇到了这个问题,我无法解决这个问题。

我有一个简单的PHP脚本重定向到pdfs,代码如下:

$file = "url/to/file";    
header("Pragma: public");

header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Description: File Transfer");
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="somefile.pdf"');
header('Content-Transfer-Encoding: binary');

readfile($file);
exit();

如果我直接在浏览器标签中试用它,它会运行,它会与Chrome的pdf插件相关联并向我展示。如果我尝试将其放在另一个页面上的链接上,或者尝试通过javascript中的window.open打开它,它会显示一个空白页面。这只发生在Chrome和Safari中,Firefox和Edge显示它很好。在有人要求之前,我已经尝试过使用和不使用缓存和内容描述标题,我从这里找到的答案得到了这个,这只是我的最后一个版本。

有什么想法吗?

提前致谢

修改

我忘了提到即使我重新加载页面,问题仍然存在于空白标签上。我已经检查了devtools上的Network选项卡,它们显示了bot请求和响应(重定向和直接)的相同结果,但重定向不起作用。此外,任何一方都没有任何错误。

另外,我在没有退出()的情况下尝试过它,并没有改变一件事。

1 个答案:

答案 0 :(得分:0)

正如ylva的评论中提到的,对于任何搜索此问题的人来说,答案都可以在这里找到

Open PDF from Chrome IFRAME failed with default PDF viewer

主要的是,Chrome的PDF查看器将PDF嵌入为应用程序,因此如果指向PDF文件的链接来自iframe,并且此iframe具有沙盒属性,则Chrome将不会让它运行,您必须删除沙箱属性或必须安装自己的PDF查看器。所以它与PHP代码本身无关。

干杯