Dou*_*ugN 43 pdf https 64-bit internet-explorer internet-explorer-8
我有一个本土的HTTPS服务器,提供简单的文件(它嵌入在我的应用程序中).它很棒 - 一直在使用它.
最近添加了SSL支持 - Chrome,FireFox和IE都喜欢它并加载页面就好了.
我发现的问题是当我尝试通过HTTPS连接加载PDF文件时.出于某种原因,PDF从不在IE 8中显示(64位Vista上为64位).它在Chrome中运行良好.当使用普通HTTP时,它在IE 8中运行良好 - 仅在使用HTTPS时失败.
注意:当提到IE 8时,它是64位Vista上的32位IE 8,尽管64位IE 8具有相同的行为.
这让我觉得它是某种IE 8/HTTPS/PDF/64位操作系统问题,但我不确定.
用于IE 8的DebugBar显示请求和响应完全符合预期 - 完全没有错误.IE 8没有显示任何错误或任何内容 - 纯白屏(或我尝试加载PDF之前显示的页面).清除缓存/ cookie /等.
IE/PDF/HTTPS是否存在任何已知问题?
Dou*_*ugN 39
以为我会回来给出最后的答案.
感谢所有建议"不要将加密的页面保存到磁盘"的人.
我遵循了EricLaw的建议并设置:
Cache-Control: private 
我也发现我有Pragma: no-cache,我删除了.
像魅力一样工作:)
wwe*_*ker 10
我遇到了同样的问题,并且只能通过要求用户修改其安全设置以关闭"不在 Internet选项"对话框的"高级"选项卡中将加密的页面保存到磁盘来使其工作:http: //support.microsoft的.com/KB/812935
...然后立即恐慌,我开始查看代码(使用VB的ASP.NET).我使用了fiddler,发现即使我没有指定缓存控制头,它似乎也在为我自动指定no-store.解决这个问题的关键实际上是在这个PHP问题中.通过将缓存控制标头设置为max-age = 1,文件将被缓存1秒,足以让Adobe Reader从磁盘中取出并将其加载到内存中.我更新了我们的代码以生成PDF,如下所示:
Response.ClearContent()
Response.ClearHeaders()
Response.AddHeader("cache-control", "max-age=1")
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "attachment; filename=whatever.pdf")
Response.AddHeader("content-length", mem_stream.Length.ToString)
Response.BinaryWrite(mem_stream.ToArray())
Response.Flush()
Response.End()                                
更新:我认为它有效,但我想我说的太快了.我在这个问题上创建了一个新问题.
so_*_*_mv 10
response.setHeader("Cache-Control","private");
在IE8和IE9中为我们做了诀窍.
这不需要更改浏览器中的设置.
| 归档时间: | 
 | 
| 查看次数: | 65643 次 | 
| 最近记录: |