在部署到Heroku的Rails 4应用程序中配置响应头

时间:2014-05-13 12:05:33

标签: ruby-on-rails iframe heroku http-headers response-headers

我想通过任何域名的iFrame提供我的Rails应用程序的视图。

在Rails 4中,有一个针对其他域的X-Frame的保护,如下所述:http://edgeguides.rubyonrails.org/security.html#default-headers

因此,解决方案是将其放在application.rb:

config.action_dispatch.default_headers = {
  'X-Frame-Options' => 'ALLOWALL'
}

这在我的本地服务器和Heroku中都很好用。但是,使用任何域中的iframe调用公开的Web应用程序的所有视图。

我想只公开iframe视图。因此,我尝试仅在用于生成iframe视图的控件中配置标头,而不是之前的解决方案:

def iframe
  response.headers["X-Frame-Options"] = "ALLOWALL"

...

end

它在我的本地服务器上运行良好。但是当我将它上传到Heroku时它不起作用。

知道为什么第二个解决方案在Heroku中不起作用吗?

谢谢

1 个答案:

答案 0 :(得分:1)

this回答中提示,您可能希望在after_action回调中设置标题:

after_action :allow_iframe, only: :iframe

def iframe
  #your code
end

private

def allow_iframe
  response.headers['X-Frame-Options'] = "ALLOWALL"
end

after_action