我們有一個應用程序,它利用了facebook javascript sdk和登錄功能。來自Facebook和跨域消息傳遞的安全性錯誤
我們一直在注意到這個錯誤出現在我們的生產日誌中。特別適用於版本爲10.3及更高版本的iOS設備。似乎也只能是靶向Safari瀏覽器上
的SecurityError(DOM異常18):訪問一幀與原籍 「https://staticxx.facebook.com」阻止與原籍 「https://www.mymadeupsite.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版本,這個錯誤?
根據您鏈接的線索,應該從Chrome 59(2017年5月)開始修復。 – felix
我的網站上有同樣的錯誤。只有來自ipad和iphone的用戶才能體驗它。 – Stalinko
剛剛還有一堆錯誤報告,來自iOS 10.3.1和Chrome 60 –