IE kann nicht download von Dateien über SSL-serviert von WebSphere
IE 7 & 8 beide werfen einen Fehler, wenn Benutzer versuchen, eine csv-Datei herunterladen, die über https.
Internet Explorer nicht herunterladen Downloadseite.jsf. Internet Explorer konnte nicht geöffnet werden dieser internet-Seite. Die angeforderte Seite ist entweder nicht verfügbar oder kann nicht gefunden werden. Bitte versuchen Sie es erneut
Las ich über die Probleme, die der IE hat in Bezug auf caching, also änderte ich die Antwort um öffentlichen Zwischenspeichern. Siehe dieses Thema: IE nicht herunterladen foo.jsf. IE war nicht in der Lage zu öffnen diese internet-Seite. Die angeforderte Seite ist entweder nicht verfügbar oder kann nicht gefunden werden
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "public");
Aber ich bin noch immer dieser Fehler.
Irgendwelche Ideen, was sonst könnte das Problem verursachen? Hier das komplette snippet:
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
response.setContentType("text/plain");
response.setHeader("Content-Disposition", "attachment; filename=\"" + browserFilename + "\"");
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "public");
response.getOutputStream().write(contentBytes);
context.responseComplete();
- Funktioniert über normale http aber?
- Ich bin mir nicht sicher im moment, Probleme mit der Anwendung auf nicht-ssl-Modus.
- Dieser Beitrag hat mir geholfen, so viel. Vielen Dank an alle, die dazu beigetragen!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, dass WebSphere fügt automatisch
Cache-Control:no-cache=set-cookie
response-header cookies enthalten in der Antwort. IE8 & ältere mögen das nicht, beim Download über SSL.Gibt es zwei mögliche Updates per dieser IBM Developerworks forum-thread:
Fügen Sie die benutzerdefinierte Antwort-header
CookiesConfigureNoCache:false
für den HTTP-transport-Kanal in WebSphere (es ist standardmäßig true).Explizit den
Cache-Control
header nach cookies Hinzugefügt werden, dies überschreibt die WebSphere-set ein.Ich hatte das gleiche Problem mit IE8.
Ich machte kleine änderungen an meinem code.
Antwort.ClearHeaders(); //notwendig, sonst "no-cache: "set-cookie" war es, musste es loswerden
Antwort.addHeader("Cache-Control", "private");
Hatte das exakt gleiche Problem auf, wenn die app-server so konfiguriert wurde, verwenden Sie SSL. Der trick für mich, um es zu arbeiten, wenn das https aktiviert war:
Ich denke, Sie sind auf dem richtigen Weg mit caching:
In diesem knowledge base-Artikel kann Ihnen helfen,
Internet Explorer nicht in der Lage ist das öffnen von Office-Dokumenten von einer SSL-Website
Erwähnt in diesem Stack Overflow Frage: Kann nicht öffnen Sie xls-Datei im IE
Ich hade das gleiche problem.
Nach Satz "Content-Disposition" und "Content-Type", fügen Sie diesen code.
Java-code
PHP-code
Hier ist, was ich getan habe in meinem PHP-code: