如何通过iframe将我的rails应用程序嵌入到另一个网站?
它与RoR 3很好地配合,但与RoR 4不兼容:
<iframe src="http://myrailsapp.com/" width="100%" height="50" id="rails_iframe">error!</iframe>
我试图在我的控制器中使用 verify_authenticity_token
和 protect_from_forgery
选项......似乎's something else (but I'我不确定) .
UPD . 示例:http://jsfiddle.net/zP329/
2 回答
这与Rails 4默认启用其他安全协议有关:http://weblog.rubyonrails.org/2013/2/25/Rails-4-0-beta1/
在远程站点上破坏iFrame的设置是X-Frame-Options . 默认情况下,此设置为SAMEORIGIN,这会阻止内容加载跨域:
您可以在此处阅读有关新默认标头的信息:http://edgeguides.rubyonrails.org/security.html#default-headers
为了允许iFrame跨域工作,您可以更改默认标头以允许跨域的X-Frame .
Rails 4
added缺省X-Frame-Options
HTTP标头值SAMEORIGIN
. 这对安全性有好处,但是如果你想在iframe
中调用action
,你可以这样做:允许所有来源:
允许特定原产地:
使用:after_filter
当您需要在
iframe
中使用多个action
时,最好创建一个方法并使用:after_filter
调用它:在控制器中使用它,如下所示:
途经:Rails 4: let specific actions be embedded as iframes