2010-06-18 44 views
8

Chúng tôi có ứng dụng web JSF tạo tệp XLS và cung cấp liên kết người dùng tới tệp này.
Tất cả đều hoạt động tốt nếu truy cập tệp này qua HTTP.
Nhưng IE (8) không thể mở/lưu tệp xls này qua HTTPS.
Có được thông báo lỗi sau:Không thể mở tệp xls trong IE

tôi có thể mở cùng một tài liệu thông qua HTTPS trong Firefox và Chrome.
Điều gì có thể là vấn đề với IE?

Headers:

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 

Trả lời

12

Theo http://support.microsoft.com/kb/316431, bạn nên loại bỏ bất kỳ các tiêu đề HTTP bạn sử dụng:

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

Kiểm soát bộ nhớ cache: tối đa tuổi = 0, không lưu trữ, không có bộ nhớ cache Thực dụng: no-cache –

+2

@Vladimir Bezugliy: Xóa những mục đó. – houbysoft

1

Bạn có cache kiểm soát thiết lập để no-cache? Tôi chạy vào một vấn đề tương tự. Xem this question and answer để biết chi tiết.

+0

Cache-control: max-age = 0, không có cửa hàng, no-cache pragma: no-cache –

+0

Tháo no-cache và xem điều gì xảy ra –

6

Nhiều khả năng nguyên nhân là các tiêu đề phản ứng http, mà chúng tôi đã phải cấu hình đặc biệt cho các tập tin xls dưới 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 

cho sự kiểm soát bộ nhớ cache và

Content-Type: application/vnd.ms-excel 
Content-Disposition: attachment; filename="ExcelDownload.xls" 
Content-Transfer-Encoding: binary 
Content-Length: <fileSize> 
.210

về nội dung

Mục quan trọng là pragma: public

Các vấn đề liên quan