Не удается открыть файл XLS в IE
У нас есть веб-приложение 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
3 ответа
Согласно 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
У вас установлен контроль кэша без кэширования? Я столкнулся с подобной проблемой. Смотрите этот вопрос и ответьте для деталей.