【问题标题】:Blocked a frame with origin "https://googleads.g.doubleclick.net" from accessing a frame阻止来源为“https://googleads.g.doubleclick.net”的框架访问框架
【发布时间】:2017-04-03 13:27:34
【问题描述】:

我在我的网页上放置了广告,它们显示正常,但我在加载页面时在控制台中收到此错误消息:

阻止来源为“https://googleads.g.doubleclick.net”的框架访问来源为“http://fakemail.site”的框架。请求访问的帧具有“https”协议,被访问的帧具有“http”协议。协议必须匹配。

通过四处搜索,我发现这是因为 AdSense 有 SSL 而我的网站没有,而且实际上没有任何方法可以解决这个问题 - 但我确信有。任何帮助,将不胜感激。谢谢!

【问题讨论】:

  • 我偷偷怀疑这是鼓励我们所有人都使用 HTTPS 的另一种方式。
  • 哈哈是的...新的 Chrome 版本会将所有 HTTP 站点标记为不安全...所以这不会很有趣。

标签: javascript html css adsense


【解决方案1】:

这是由于 javascript 同源策略(它是一种安全策略)。您需要添加 CORS 标头以启用跨源请求,具体操作方式取决于您使用的服务器。

您可能还需要将您对 google-ads 的调用更改为 http 而不是 https(如果 google 允许)或者更好,省略像这样的协议 //googleads.g.doubleclick.net 这使其默认匹配当前的协议页。

这些错误通常可以安全忽略(谷歌的 youtube API 也会抛出同源错误并正常运行)但是我不熟悉双击广告。

以下是有关 CORS 和同源政策的更多信息的一些很好的参考 https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

PS。确保在测试时禁用所有扩展程序,尤其是广告拦截器 - 只需注意它,因为它是一个常见错误。

【讨论】:

    猜你喜欢
    • 2013-10-14
    • 2015-07-29
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 2016-09-28
    • 2019-02-05
    • 2017-06-25
    • 2014-04-08
    相关资源
    最近更新 更多