【发布时间】:2017-06-15 19:32:39
【问题描述】:
按照 Facebook 的说明,Chrome 中的 FB.Init 生成
拒绝显示 'https://www.facebook.com/connect/ping?...' 在 框架,因为它将“X-Frame-Options”设置为“DENY”。
但是,页面上没有框架。奇怪的是,IE 似乎对这个电话很满意。
根据stackoverflow的建议,我添加了
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
致system.webServer
无济于事。
所以这里发生了其他事情。关于这个问题似乎有很多关于 SO 的问题,但没有明确的解决方案。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>hello world</h1>
<script>
// -----------------------------
var FBinitialised = false;
window.fbAsyncInit = function() {
FB.init({
appId : '<MY_APP_ID>',
cookie : true,
xfbml : true,
version : 'v2.8'
});
console.log( 'after FB.init');
FB.getLoginStatus( function( response){
FBinitialised = true;
console.log( 'FBinitialised');
});
};
// ---------------------------------
// Load the SDK asynchronously
(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';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
console.log( 'End of script');
</script>
</body>
</html>
有人知道怎么回事吗?
【问题讨论】:
-
SDK 有时会自己创建 iframe 元素。您想在这里实现的任何目标都不起作用吗?如果不是这种情况,那么只需忽略这些错误。
-
谢谢,但
FBinitialised从未在 Chrome 中设置,而是在 IE 中。
标签: facebook-graph-api x-frame-options