我想通过任何域名的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中不起作用吗?
谢谢
答案 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