IE не может скачать foo.jsf. IE не смог открыть этот интернет-сайт. Запрашиваемый сайт либо недоступен, либо не найден
Я предоставляю загрузку файлов (обычно CSV или PDF) в моем веб-приложении JSF на хосте HTTPS (SSL). Он работает нормально в большинстве браузеров, только IE7/8 выдает следующую ошибку:
Internet Explorer не может загрузить foo.jsf. Internet Explorer не смог открыть этот интернет-сайт. Запрашиваемый сайт либо недоступен, либо не найден. Пожалуйста, попробуйте еще раз
Я думаю, что ошибка связана с JSF <h:commandLink>
тег не совместим с IE.
<h:commandLink value="Download" action="#{bean.download}" />
Как это вызвано и как я могу решить это?
2 ответа
Это типичное сообщение об ошибке MSIE, когда загрузка осуществляется по протоколу HTTPS (SSL), а заголовки ответа настроены на отключение кэша браузера через no-cache
, Эта проблема не связана с JSF.
Вам нужно ослабить заголовки ответа, которые влияют на кеш браузера. Он не должен содержать no-cache
инструкция. Вы можете установить его на public
, private
или же no-store
,
response.setHeader("Cache-Control", "public");
response.setHeader("Pragma", "public");
Смотрите также MS KB Q316431.
Кроме того, если вы работаете на сервере приложений WebSphere, добавьте также заголовок ниже, чтобы он не перекрывал Cache-Control
Заголовок впоследствии:
response.setHeader("CookiesConfigureNoCache", "false");
См. Также IE не может загружать файлы через SSL, обслуживаемый WebSphere.
Эта проблема не будет связана с jsf, поскольку она просто конвертирует командную кнопку в html, который доступен во всех браузерах. Я предполагаю, что проблема в abcBean.downloadCSV. Правильно ли вы устанавливаете тип содержимого в файле csv?
Можете ли вы описать, что происходит в вашем методе действий?