我有一个在server1上运行的虚拟实例,以及一个webserver(server2),我希望根据他们的选择在iframe中提供仪表板。
使用原生网址,我得到以下内容:
Refused to display 'http://server1:3030/dashboard1' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
我尝试将Dashing放在server1上的本地Apache反向代理后面,并将标头设置为允许。然后远程Apache服务器(server2)调用反向代理,但Chrome开发工具仍然说它被拒绝
Refused to display 'http://server1/dashboard1' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
使用反向代理Apache设置以下标题:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, OPTIONS, POST"
Header set Access-Control-Allow-Headers "origin, authorization, accept"
我真的不知道瘦身是如何工作的,也不知道如何设置标题,我现在有点难过了。我甚至尝试通过layout.erb中的http-equiv元标记添加allow,但没有成功。
答案 0 :(得分:1)
由于潇洒使用Sinatra,您可以在Sinatra's Docs中找到答案。我能够通过将以下内容添加到位于虚拟目录中的package.json
文件来完成此操作:
config.ru
其他参考:How do I get Sinatra to refrain from adding the X-Frame-Options header?