gpt4 book ai didi

javascript - 重新加载 facebook 评论导致跨源错误

转载 作者:行者123 更新时间:2023-11-29 17:06:09 25 4
gpt4 key购买 nike

我已经使用 Facebook 提供的代码在我的应用程序上实现了 Facebook Comments:https://developers.facebook.com/docs/plugins/comments/

评论加载正确,生活美好。但是,我有一个管理用户的设置面板,它公开了修改的能力:

  • 帖子数量
  • 主题
  • 订购方式

当用户更改这些时,我使用

FB.XFBML.parse(this.fbEl);

刷新评论。这有效,但是它无法正确呈现并给出错误:

Uncaught SecurityError: Blocked a frame with origin "https://www.facebook.com" from accessing a frame with origin "http://mysite.dev". The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "http". Protocols must match.

我在互联网上搜索过无济于事。有谁知道如何解决这个问题?

SDK代码如下:

<div id="fb-root"></div>
<script>
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-comments" id="fb-comments" data-href="{{data.url}}" data-width="100%" data-numposts="{{data.numPosts}}" data-order-by="{{data.orderBy}}" data-colorscheme="{{data.colorScheme}}"></div>

最佳答案

遗憾的是,没有正确的方法来解决这个问题。 Facebook 必须在他们的 JS 框架中解决这个问题。好消息是我找到了一个快速修复方法,即使发生错误,它也会显示您的评论窗口。我已经测试了代码,Facebook 允许我在错误发生后发表评论。

此修复程序使用 jQuery,并且还使用 setTimeout 等待(和猜测)在删除类之前调用​​错误。我确信有更好的方法来实现此修复,但到目前为止这对我有用。例如,您可以将超时从 1 秒更改为 2 秒,以便脚本在错误发生后更有可能执行。

 setTimeout(function(){$('.fb-comments').removeClass('fb_hide_iframes');},1000);

关于javascript - 重新加载 facebook 评论导致跨源错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24549119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com