2010-06-18 8 views
8

Nous avons une application Web JSF qui génère un fichier XLS et donne un lien utilisateur à ce fichier.
Tout fonctionne très bien si vous accédez à ce fichier via HTTP.
Mais IE (8) ne peut pas ouvrir/enregistrer ce fichier xls via HTTPS.
Il est message d'erreur suivant:Impossible d'ouvrir le fichier xls dans IE

je peux ouvrir le même document via HTTPS dans Firefox et Chrome.
Quel peut être le problème avec IE?

têtes:

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 

Répondre

12

Selon http://support.microsoft.com/kb/316431, vous devez supprimer l'un de ces en-têtes HTTP que vous utilisez:

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

Cache-control: max-age = 0, pas de magasin, pas de cache Pragma: no-cache –

+2

@Vladimir Bezugliy: Supprimez ceux-ci. – houbysoft

1

Est-ce que vous avez Cache Control est réglé sur no-cache? J'ai rencontré un problème similaire. Voir this question and answer pour plus de détails.

+0

Cache-Control: max-age = 0, pas de magasin, no-cache Pragma: no-cache –

+0

Retirez le no-cache et voir ce qui se passe –

6

cause la plus probable est l'en-tête de réponse HTTP, que nous avons dû configurer spécifiquement pour les fichiers xls sous 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 

pour le contrôle du cache et

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

pour le contenu

L'entrée clé est Pragma: publique

Questions connexes