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?

Можете ли вы описать, что происходит в вашем методе действий?

Другие вопросы по тегам