我们一直在为这个问题绞尽脑汁,我假设这与响应 header 有关。间歇性的“无法下载”对话框让我猜测到底是什么问题,因为我看到的大多数其他问题似乎都是全有或全无的问题。
我们通过支持 SSL 的 Web API 端点提供 PDF。发回的 header 如下:
resp.Content.Headers.Clear()
resp.Content.Headers.ContentType = New MediaTypeHeaderValue("application/pdf")
resp.Content.Headers.ContentDisposition = New ContentDispositionHeaderValue("attachment")
resp.Content.Headers.ContentDisposition.FileName = "exported.pdf"
resp.Headers.CacheControl = New CacheControlHeaderValue() With {.Private = True}
据我所知,Cache-Control header 是此问题的根源。当前的解决方案间歇性地工作。这现在发生在 IE8 和 IE10 中。有什么建议么? Internet 选项中的设置正确。
我正在考虑的一些选项是:
- 设置最大年龄
- 将 Pragma header 设置为私有(private)
- 以特定顺序为 Cache-Control 设置 no-store、no-cache。
这些是否真的有效?
最佳答案
设置缓存控制 header 应该有效,请参阅以下答案了解如何操作 https://stackoverflow.com/a/15687482/482390 .
当您说它是间歇性的时,我不确定这是在同一个浏览器和单个用户还是多个用户上;我们遇到了类似的问题,这是由于某些用户在 Internet Explorer 9 中选中了特定设置(“不将加密的页面保存到磁盘”)。此设置位于 Internet 选项的“高级”选项卡下,以下文章介绍了您的问题如何修改此设置 http://support.microsoft.com/kb/2549423 .
关于.net - Internet Explorer 通过 SSL Web API 出现间歇性 'Unable to download' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22989280/