【发布时间】:2017-09-10 00:31:20
【问题描述】:
我们有一个利用 facebook javascript sdk 和登录功能的应用程序。
我们已经注意到我们的生产日志中出现了这个错误。特别适用于 10.3 及更高版本的 iOS 设备。似乎也只针对 safari 浏览器
SecurityError (DOM Exception 18): Blocked a frame with origin “https://www.mymadeupsite.com”来自访问具有原点的框架 “https://staticxx.facebook.com”。被访问的框架集 “document.domain”到“facebook.com”,但请求访问的框架 没有。两者都必须将“document.domain”设置为相同的值才能允许 访问。
这是我们的初始化函数:
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 上收到此错误?
【问题讨论】:
标签: javascript ios facebook cross-domain facebook-javascript-sdk