我们一直在为这个问题绞尽脑汁,我想这与响应标头有关。间歇性的"无法下载"对话框让我猜测到底是什么问题,因为我看到的大多数其他问题似乎都是要么全有要么全无的问题。
我们通过SSL-启用Web API端点提供PDF。发送回的标题如下:
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}
根据我所读到的内容,缓存控制标头是这个问题的根源。当前的解决方案间歇性工作。这种情况目前正在IE8和IE10中发生。有什么建议吗?"Internet选项"中的设置正确。
我正在考虑的一些选项是:
- 设置最大年龄
- 将Pragma标头设置为Private
- 为"缓存控制"按特定顺序设置"无存储,无缓存"
这些现实可行吗?
设置Cache控件头应该可以工作,请参阅下面的答案https://stackoverflow.com/a/15687482/482390.
当你说它是间歇性的时,我不确定它是在同一个浏览器上,还是在一个用户或多个用户上;我们遇到了类似的问题,这是由于一些用户在InternetExplorer9中检查了特定的设置("不要将加密页面保存到磁盘")。此设置位于"Internet选项"的"高级"选项卡下,下面的文章介绍了如何修改此设置http://support.microsoft.com/kb/2549423.
我们只是升级到Internet Explorer 10来解决这个问题。我相信这是请求标头的问题,但我没有使用正确的组合来满足InternetExplorer8的要求。