ruby-on-rails - 在 Rails 中通过 SSL 在 Internet Explorer 中下载文件

标签 ruby-on-rails internet-explorer http ssl download

最近将我的 Rails 3.0 应用程序切换到 SSL 之后,我在 Internet Explorer 中下载文件时遇到了问题。在 Firefox 和 Chrome 中一切正常。经过大量搜索后,我确信问题与 Cache-Control HTTP 响应 header 有关。

所以在代码中,我在调用 send_file 之前手动删除了 Cache-Control 和 Pragma。

response.headers.delete("Pragma")
response.headers.delete('Cache-Control')
send_file(response_letter_path, :filename=>"aod_response_letter.docx", :disposition=>'inline')

但是当我使用 Firebug 或 Chrome 开发工具查看 HTTP 响应时,它仍然显示“Cache-Control:private”。

那么首先,我是否在解决这个 IE 问题的正确 rails 上?其次,这是从 HTTP 响应中删除 header 的正确方法吗?

谢谢!

最佳答案

是的,您走在正确的 rails 上。

我刚遇到这个问题并通过在 send_file 调用之前添加以下行来解决它。 response.headers.delete('缓存控制')

Rails 默认设置 HTTP header Cache-Control: no-cache。由于 IE 使用磁盘缓存来播放视频,因此会抛出“找不到播放文件”错误。

关于ruby-on-rails - 在 Rails 中通过 SSL 在 Internet Explorer 中下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211751/

相关文章:

ruby-on-rails - rename_column 是否负责索引?

ruby-on-rails - 使用 Delegator 类时出现 ArgumentError

internet-explorer - 什么时候不再支持 IE6?

angular - Http 获取参数过滤器

http - 在没有 ssl 证书的情况下继续

ruby-on-rails - Rails 一直告诉我它当前未安装

javascript - 如何将被覆盖的属性保存为nil?

javascript - 变换 : translateY Not Working on Style Attribute in IE/Edge

javascript - Json 到 csv 转换器(IE 8+)

http - 压缩响应的内容长度值