当用户尝试通过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) 我在本地计算机上运行.net服务(Windows 7 x64,IE8,.net 3.5,C#),它将文件返回给浏览器以响应用户操作.使用firefox或chrome,文件正确下载,我们的应用程序通过自定义mime类型启动,一切都很好.
但是,使用IE8,我收到一个"无法从中下载文件的对话框.无法打开此网站.请求的网站不可用或无法找到.请稍后再试".
使用fiddler,我验证了IE确实从服务接收了有效负载.
如果我关闭UAC,IE会下载该文件并启动相关的应用程序.
关闭UAC不是一个可行的解决方案,因为我们的客户将启用它.
如何启用IE8以启用启用UAC的关联应用程序?
编辑:
在使用此处所述的编程ID重新注册mime类型后,我可以让IE打开显示"打开或保存"对话框,以便在第二次从地址栏请求链接时.为什么它第一次不起作用?