gpt4 book ai didi

javascript - 来自 Facebook 和跨域消息传递的 SecurityError

转载 作者:IT王子 更新时间:2023-10-29 08:11:49 25 4
gpt4 key购买 nike

我们有一个利用 facebook javascript sdk 和登录功能的应用程序。

我们一直注意到我们的生产日志中出现了这个错误。专门针对 10.3 及更高版本的 iOS 设备。似乎也只针对 safari 浏览器

SecurityError (DOM Exception 18): Blocked a frame with origin "https://www.mymadeupsite.com" from accessing a frame with origin "https://staticxx.facebook.com". The frame being accessed set "document.domain" to "facebook.com", but the frame requesting access did not. Both must set "document.domain" to the same value to allow access.

这是我们的初始化函数:

        init: function(options) {
var facebookUrl, scriptInclude;
Facebook.baseHost = options.baseHost;
if (typeof FB !== "undefined" && FB !== null) {
return Facebook.setup();
} else {
if (options.appId == null) {
throw 'Facebook: cannot init without appId';
}
window.fbAsyncInit = function() {
FB.init({
appId: options.appId,
version : 'v2.3',
channelUrl: options.channelUrl || ("" + document.location.protocol + "//" + document.location.host + "/channel.html"),
status: true,
cookie: false,
xfbml: false,
oauth: true
});
return Facebook.setup();
};
$('body').append('<div id="fb-root"></div>');
facebookUrl = "//connect.facebook.net/" + (Facebook.getLocaleFacebookSupports(Social.SETTINGS.fbLocale)) + "/sdk.js";
scriptInclude = "<script type=\"text/javascript\" async=\"true\" src=\"" + facebookUrl + "\"></script>";
return $('#fb-root').append(scriptInclude);
}
}

我的问题是,为什么我们只在 iOS 设备和版本 10.3 上收到此错误?

最佳答案

我也遇到了这个问题,在仔细研究之后,它似乎是浏览器自动填充中的一个错误:发送到我们的日志集群的堆栈跟踪如下所示:

g@https://example.com:5:190, 
g@https://example.com:7:323,
extractNewForms@https://example.com:13:37,
extractForms@https://example.com:8:381,
global code@https://example.com:1:98

如您所见,错误发生在 extractForms 函数的某处,(对我们而言)代码库中的任何地方都不存在。 Google 搜索显示 extractFormsextractNewForms 都是浏览器自动填充库的一部分,线程 here表明其中存在错误(评论 12 和 15 与您的问题最相关)。

据我所知,这也与 Facebook 没有特别相关:在我们的日志中,我们看到更多 iframe 的类似错误,包括来 self 们自己控制的(子)域的 iframe。

不幸的是,我不知道任何修复或解决方法,而且我也非常怀疑(用户空间)修复/解决方法是否真的可行。我认为您唯一能做的就是忽略这些错误。

关于javascript - 来自 Facebook 和跨域消息传递的 SecurityError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43399818/

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