IE 无法下载 foo.jsfIE 无法打开此 Internet 站点

问题描述

这是一个典型的 MSIE 错误消息,当通过 HTTPS (SSL) 提供下载而响应标头设置为通过no-cache. 此问题与 JSF 无关。

您需要放宽对浏览器缓存有影响的响应标头。它不应该包含no-cache指令。您可以将其设置为public,privateno-store.

response.setHeader("Cache-Control", "public");
response.setHeader("Pragma", "public");

另请参阅 MS 知识库 Q316431

此外,如果您碰巧在 WebSphere Application Server 上运行,那么还要添加以下标头,以防止它在Cache-Control之后覆盖标头:

response.setHeader("CookiesConfigureNoCache", "false");   

解决方法

我在 HTTPS (SSL) 主机上的 JSF Web 应用程序中提供文件下载(通常是 CSV 或 PDF)。它在大多数浏览器中都可以正常工作,只有 IE7/8 会出现以下错误:

Internet Explorer 无法下载 foo.jsf。Internet Explorer 无法打开此 Internet 站点。请求的站点不可用或找不到。请再试一次

我认为该错误与 JSF<h:commandLink>标签与 IE 不兼容有关。

<h:commandLink value="Download" action="#{bean.download}" />

这是如何引起的,我该如何解决?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...