У нас есть веб-приложение JSF, которое генерирует файл XLS и дает пользовательский канал им, регистрируют.
Все хорошо работает если доступ этот файл через HTTP.
Но IE (8) не может открыться/сохранить этот xls файл через HTTPS.
Там следует сообщению об ошибке:
Internet Explorer cannot download ...466088C5C313F92808BDB0AFF3447 from testhost.
Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later.
Я могу открыть тот же документ через HTTPS в Firefox и в Chrome.
Какова может быть проблема с IE?
Заголовки:
HTTP/1.1 200 OK
Date: Fri, 18 Jun 2010 14:45:42 GMT
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1
X-UA-Compatible: IE=EmulateIE7
Last-Modified: Fri, 18 Jun 2010 14:45:11 GMT
Cache-control: max-age=0, no-store, no-cache
Pragma: no-cache
Expires: 0
Content-Type: application/vnd.ms-excel
Content-Length: 6656
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Согласно http://support.microsoft.com/kb/316431 , вам следует удалить любой из этих заголовков HTTP, которые вы используете:
Pragma: no-cache
Cache-control: no-cache,max-age=0,must-revalidate
Наиболее вероятная причина - заголовки ответов http, которые нам пришлось настроить специально для файлов xls под ssl
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Fri, 18 Jun 2010 16:22:07 GMT
Cache-Control: cache, must-revalidate
Pragma: public
для управления кешем. и
Content-Type: application/vnd.ms-excel
Content-Disposition: attachment; filename="ExcelDownload.xls"
Content-Transfer-Encoding: binary
Content-Length: <fileSize>
для содержания
Ключевая запись - Pragma: public
Установлен ли у вас Cache Control на no-cache? Я столкнулся с аналогичной проблемой. Подробности см. в этом вопросе и ответе.