【问题标题】:Uncaught SecurityError: Failed to read the 'contentDocument' property未捕获的 SecurityError:无法读取“contentDocument”属性
【发布时间】:2015-10-16 18:00:49
【问题描述】:

我的网站上有 facebook like 插件,我尝试通过代码获取 facebook iframe 的内容:

iframe[0].contentDocument || iframe[0].contentWindow.document;

但是在控制台我得到这个错误:

未捕获的安全错误:无法从“HTMLIFrameElement”读取“contentDocument”属性:阻止具有“http://like2see.co.il”来源的框架访问具有“https://www.facebook.com”来源的框架。请求访问的帧具有“http”协议,被访问的帧具有“https”协议。协议必须匹配

我进行了搜索,我得到了这个答案 Console displays Uncaught SecurityError 所以我明白,因为我的网站不是 https,所以那里有一个解决方案,但我不明白他,也许有人知道另一种解决方案,或者可以向我解释提到的那个那里?

【问题讨论】:

  • 该错误是由于您的网站不是https://www.facebook.com - 您无法跨域阅读内容
  • 这是因为same-origin policy

标签: javascript http https


【解决方案1】:

除非您禁用浏览器的安全功能,否则您不得跨域查看 Facebook.com 上 iframe 的内容。

在 Google Chrome 中,您可以使用这些启动标志禁用安全性,但不建议这样做

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-running-insecure-content --disable-web-security

另外,您的用户不会禁用他们的安全性。

你需要找到另一种方法来做你想做的事情。

这篇关于同源政策的other answer可能有助于阅读。

【讨论】:

  • 还有其他方法可以通过 javascript 读取 iframe 内容吗?
  • 仅当它与包含 iframe 的父页面位于同一域时。对不起。
猜你喜欢
  • 1970-01-01
  • 2017-07-08
  • 2014-12-07
  • 2016-03-10
  • 2015-04-04
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多