gpt4 book ai didi

Java Servlet Mimetype 和 Internet Explorer mimetype 处理错误

转载 作者:行者123 更新时间:2023-12-04 07:02:01 25 4
gpt4 key购买 nike

我有一个可以返回 text/html 或 application/pdf 内容的 servlet。显然,看起来 Internet Explorer (IE7) 没有正确处理应用程序/pdf。

例如。 Servlet 输出 A 可能会返回 html 内容:

[这里的html内容]

然后 Servlet 输出 B 可能会返回 PDF 内容:

[pdf内容在这里]

与这些输出关联的 URL 是相同的 Servlet URL:http://web/Servlet

在线阅读,看起来 IE 可能有一个错误的机制,并且不信任从服务器设置的 mimetype/content 类型。主要是,我在 Internet Explorer 下输出 PDF 时遇到问题,但由于某种原因 IE 将内容类型恢复为 text/html,我得到一个空白的 html 页面。

这是关于这个问题的引用:

“即使 PDF servlet 已修复,将响应的 MIME 类型设置为 application/pdf,现在仍然存在另一个错误。如果没有找到结果,则响应使用 HTML 将此信息发送回客户端!现在因为 IE 的MIME 类型的恶作剧,响应将使用 text/html MIME 类型显示。但是大多数其他浏览器将信任从服务器发送的 application/pdf MIME 类型“

在具有相同 Servlet 的 Firefox 中,我没有遇到这个问题。

在 java 代码中,我基本上设置了这些响应头值:

Expires=0
Cache-Control=max-age=1, must-revalidate, no-cache, post-check=0, pre-check=0
Pragma=public
Content-Disposition=inline; filename=filename_1257804404940.pdf
Content-Length=457834
Connection=Keep-Alive
Content-Type=application/pdf
Content-Language=en-US

以上是firefox的输出。在 IE 下,我可能会得到:
Content-Length=0
Connection=Keep-Alive
Content-Type=text/html
Content-Language=en-US

虽然代码是一样的。
这是我的问题,我怎样才能避免这个问题?

最佳答案

我们在工作中遇到了类似的问题。您可以通过在您转到的 URL 中包含具有正确扩展名的文件名来扭转浏览器的 ARM 。

如果您有一个 HTML 服务 servlet 和一个处理 PDF 的 servlet,这显然没有问题;只需将不同的 URL 映射到它们。

如果类型是在运行时确定的,您可以通过默认为 HTML 并在需要时返回带有元重定向到 PDF URL 的文档来解决问题。

关于Java Servlet Mimetype 和 Internet Explorer mimetype 处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1704243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com