【发布时间】:2009-11-09 22:08:39
【问题描述】:
我有一个可能返回 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
以上是火狐的输出。在 IE 下,我可能会得到:
Content-Length=0
Connection=Keep-Alive
Content-Type=text/html
Content-Language=en-US
即使代码相同。 这是我的问题,我该如何避免这个问题?
【问题讨论】:
标签: java internet-explorer servlets mime-types