Tho*_*ley 8 websphere jsf internet-explorer download
当用户尝试通过https下载csv文件时,IE 7和8都会抛出错误.
Internet Explorer无法下载downloadPage.jsf.Internet Explorer无法打开此Internet站点.请求的网站不可用或无法找到.请再试一次
我读到了IE与缓存相关的问题,因此我更改了响应以允许公共缓存.看到这个问题:IE无法下载foo.jsf.IE无法打开这个网站.请求的网站不可用或无法找到
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "public");
Run Code Online (Sandbox Code Playgroud)
但我仍然得到这个错误.
还有什么想法可能导致这个问题吗?这是完整的片段:
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();
Run Code Online (Sandbox Code Playgroud)
Cache-Control:no-cache=set-cookie
当响应中包含cookie时,WebSphere似乎会自动添加响应头.IE8及更早版本在通过SSL下载时不喜欢这样.
根据此IBM Developerworks论坛主题,有两种可能的修复方法:
CookiesConfigureNoCache:false
在WebSphere中为HTTP传输通道添加自定义响应头(默认情况下为true).
response.setHeader("CookiesConfigureNoCache", "false");
Run Code Online (Sandbox Code Playgroud)在添加cookie 之后显式设置Cache-Control
标头,这将覆盖WebSphere 设置的标头.
response.addCookie(...);
response.addCookie(...);
...
response.setHeader("Cache-Control", ...);
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
20052 次 |
最近记录: |