首页 > 解决方案 > 在网页中嵌入 PDF 文件:content-type octet-steam

问题描述

我正在开发一个 Angular Web 应用程序,它需要在网页内显示来自远程服务器的 PDF 文件。

为此,我使用了iframe 。这里的“路径”是远程服务器中 pdf 的 URL。

<iframe class="embed-responsive-item" [src]="path | safe"></iframe>

在我进入生产环境之前,使用测试 pdf 文件可以正常工作。当页面打开时,PDF 将被下载而不是显示。一点点挖掘表明问题在于响应标头包含 content-type: application/octet-stream而不是application/pdf

我一直在尝试寻找解决方案。我发现更改内容类型标头的建议会起作用。但在这种情况下,它是我无法控制的远程服务器。

我还尝试了其他标签,例如embed。它可以指定文件类型。

<embed [src]="path | safe" type="application/pdf" width="300" height="200">

它仍然不起作用并显示一个空白框。

任何帮助是极大的赞赏。

更新:我发现 PDF 文件服务器也不支持 CORS 请求。多么激动人心!

我重新访问了 ng2-pdf-viewer,它看起来还不错,但它需要 CORS。同样的原因 pdf.js 不起作用。猜猜这给我留下了代理服务器解决方案。谢谢大家帮助。

标签: javascriptangularhtmltypescriptpdf

解决方案


推荐阅读