站点阻止Stumbleupon iframe中的javascript

时间:2016-07-30 17:26:50

标签: javascript ruby-on-rails iframe same-origin-policy stumbleupon

我试图从我的网站www.drewgl.com添加一些页面到stumbleupon。它非常依赖于javascript。当我通过stumbleupon查看我的网站时,javascript被阻止。具体来说,我看到错误:

  

Uncaught SecurityError:阻止具有原点的帧   " http://www.drewgl.com"从访问原始框架   " http://www.stumbleupon.com&#34 ;.协议,域和端口必须匹配

我使用部署到heroku的rails 4。我将X-frame选项设置为允许所有。我在这里阅读了答案: SecurityError: Blocked a frame with origin from accessing a cross-origin frame 似乎解决这个问题的唯一方法是使用window.postmessage在两个页面之间发送消息。但是,要执行此操作,您必须拥有这两个页面。

当然,Stumbleupon无法满足这一条件,那么我该如何解决这个问题呢?

编辑:我刚刚下载了chrome的stumbleupon工具栏。执行此操作后,我不再收到上述错误消息。无论哪种方式,我仍然希望为没有工具栏的绊倒者解决这个问题。

2 个答案:

答案 0 :(得分:1)

Rails app无法在StumbleUpon上加载?将其添加到ApplicationController

  before_action :allow_iframe_requests

private

  def allow_iframe_requests
    response.headers.delete('X-Frame-Options')
  end

https://github.com/rails/rails/issues/6311

答案 1 :(得分:0)

想出来。如果有人好奇,您就不能从iframe中访问当前路径。这段代码导致了这个问题:

//     if (top.location.pathname === '/users/sign_in')
// {
//     $('#login').modal('show');
// }