2010-06-18 92 views
8

我們有JSF Web應用程序,該應用程序生成XLS文件併爲用戶提供鏈接。
所有工作正常,如果通過HTTP訪問此文件。
但IE(8)無法通過HTTPS打開/保存此xls文件。
還有就是以下錯誤信息:無法在IE中打開xls文件

我可以在Firefox和Chrome中打開通過HTTPS相同的文檔。
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 

回答

12

http://support.microsoft.com/kb/316431,您應該刪除這些HTTP頭的使用:

Pragma: no-cache 
Cache-control: no-cache,max-age=0,must-revalidate 
+0

緩存控制:max-age = 0,無存儲,無緩存 Pragma:no-cache – 2010-06-18 15:19:06

+2

@Vladimir Bezugliy:刪除這些。 – houbysoft 2010-06-18 15:22:06

1

你有緩存控制設置爲no-cache?我遇到了類似的問題。詳情請參閱this question and answer

+0

緩存控制:最大年齡= 0,無店鋪,無緩存 雜注:無緩存 – 2010-06-18 15:20:48

+0

刪除無緩存,看看會發生什麼 – 2010-06-18 19:15:20

6

最可能的原因是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> 

的內容

的關鍵項是附註:公共