Rails 4
添加了默认的X-Frame-Options
HTTP 标头值SAMEORIGIN
. 这对安全性有好处,但是当您确实希望action
在 an 中调用iframe
您时,可以这样做:
允许所有来源:
class MyController < ApplicationController
def iframe_action
response.headers.delete "X-Frame-Options"
render_something
end
end
允许特定来源:
class MyController < ApplicationController
def iframe_action
response.headers["X-FRAME-OPTIONS"] = "ALLOW-FROM http://some-origin.com"
render_something
end
end
使用 :after_filter
当您需要使用多个action
in 时iframe
,最好创建一个方法并使用以下方法调用它:after_filter
:
class ApplicationController < ActionController::Base
private
def allow_iframe
response.headers.delete "X-Frame-Options"
end
end
在您的控制器中使用它,如下所示:
class MyController < ApplicationController
after_filter :allow_iframe, only: [:basic_embed, :awesome_embed]
def basic_embed
render_something
end
def awesome_embed
render_something
end
# Other Actions...
end
通过:Rails 4:让特定动作嵌入为 iframe