在 Dashing 中禁用 CORS
Disabling CORS in Dashing
我在 server1 上有一个 dashing 实例 运行,还有一个网络服务器 (server2),我想根据他们的选择在 iframe 中提供 dashing 仪表板。
使用本机 URL,我得到以下信息:
Refused to display 'http://server1:3030/dashboard1' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
我尝试将 Dashing 置于 server1 上的本地 Apache 反向代理后面,并将 headers 设置为允许。远程 Apache 服务器 (server2) 然后调用反向代理,但 Chrome 开发工具仍然说它被拒绝。
Refused to display 'http://server1/dashboard1' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
这是使用反向代理 Apache 设置的 headers:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, OPTIONS, POST"
Header set Access-Control-Allow-Headers "origin, authorization, accept"
我真的不知道薄的工作原理或如何设置它 headers,我现在有点难过。我什至尝试通过 layout.erb 中的 http-equiv 元标记添加允许,但没有成功。
由于 dashing 使用 Sinatra,您可以在 Sinatra's Docs 中找到答案。我能够通过将以下内容添加到位于 dashing 目录中的 config.ru
文件来完成此操作:
configure do
set :protection, :except => :frame_options
附加参考:How do I get Sinatra to refrain from adding the X-Frame-Options header?
我在 server1 上有一个 dashing 实例 运行,还有一个网络服务器 (server2),我想根据他们的选择在 iframe 中提供 dashing 仪表板。
使用本机 URL,我得到以下信息:
Refused to display 'http://server1:3030/dashboard1' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
我尝试将 Dashing 置于 server1 上的本地 Apache 反向代理后面,并将 headers 设置为允许。远程 Apache 服务器 (server2) 然后调用反向代理,但 Chrome 开发工具仍然说它被拒绝。
Refused to display 'http://server1/dashboard1' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
这是使用反向代理 Apache 设置的 headers:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, OPTIONS, POST"
Header set Access-Control-Allow-Headers "origin, authorization, accept"
我真的不知道薄的工作原理或如何设置它 headers,我现在有点难过。我什至尝试通过 layout.erb 中的 http-equiv 元标记添加允许,但没有成功。
由于 dashing 使用 Sinatra,您可以在 Sinatra's Docs 中找到答案。我能够通过将以下内容添加到位于 dashing 目录中的 config.ru
文件来完成此操作:
configure do
set :protection, :except => :frame_options
附加参考:How do I get Sinatra to refrain from adding the X-Frame-Options header?