是否可以更改ajax结果的内容/ mime类型?

时间:2012-04-13 10:27:47

标签: php jquery ajax content-type output-buffering

我正在使用输出缓冲通过PHP使用proxy-handler和readfile()从网络共享中获取pdf文件。 我通过指定content / mime类型在新的浏览器选项卡中显示它。 (http://stackoverflow.com/questions/10121903/php-scandir-explorer-view-to-display-network-share-files-file-via-wamp-wor)

我在整个应用程序的其余部分使用jQuery / Ajax。 是否可以使用ajax将原始PDF内容注入div标签,但是可以正确显示?目前所需的标题(标题(“Content-type:application / pdf”))似乎被ajax请求剥离,并且显示为乱码。

编辑:谢谢大家的评论和答案。我会更详细地回复并尽快审核我的选择。

@ Murtaza - 上面的问题链接显示了我如何获得原始PDF,此外我使用$ .ajax将请求发送到div标签并使用iframe,当我将其呈现到代码中时as src =,而不是Ajax。

@ Brad Christie / Quentin - 也许我可以使用iFrame或Modal来显示内容?我测试了pdfobject.js这是好的,但需要一个链接文件(例如/files/file.pdf)。这听起来很可怕,但如果我使用PHP将临时文件写入Web根目录然后显示呢?我能想到的另一件可能是有用的可能是jQuery PDF库,如果有人使用过它吗?

@ Ignacio - 我尝试使用以下代码。它变成了胡言乱语。我可能做错了,因为我没有使用iFrames的经验。      //其中$ filename是原始PDF数据     “>

詹姆斯。

2 个答案:

答案 0 :(得分:1)

您不能“将原始PDF内容注入div标签”; PDF文件不是HTML,必须通过PDF阅读器插件。尝试将其作为iframe的目标。

答案 1 :(得分:0)

  

是否可以使用ajax将原始PDF内容注入div标签但是可以正确显示?

不是真的。你可能会做一些pdf.js

  

目前所需的标题(标题(“Content-type:application / pdf”))似乎被ajax请求剥离

无论您使用什么方式插入数据,都明确将其视为文本或HTML,而不是PDF。您的代码忽略了内容类型。