localhost
WebサイトとFB.logout()
を使用したスクリプトを持っています。いくつかのアクションの後、ログアウトに失敗し、コンソールに次のエラーメッセージが表示されます。
_Refused to display 'https://www.facebook.com/home.php' in a frame because it set 'X-Frame- Options' to 'DENY'.
_
StackOverflowをすべて検索しても、有効な解決策は見つかりませんでした。ネットワークインスペクターがhome.phpクエリの近くでキャンセルを表示します。
そのため、スクリプトはFacebookのホームページをフレームにロードしようとしますが、禁止されているため、ロードできません。どうすれば修正できますか?なぜlogout()
が機能しないのですか?
私のコード
_// Facebook Basic Example
window.fbAsyncInit = function() {
FB.init({
appId : '579651098766258',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.Event.subscribe('auth.authResponseChange', function(response) {
if (response.status === 'connected') {
testAPI();
} else if (response.status === 'not_authorized') {
FB.login();
} else {
FB.login();
}
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
function testAPI() {
FB.api('/me', function(res) {
console.log(res);
setTimeout(function(){
FB.logout(); // <-- ERROR
}, 2000);
});
}
_
この解決策は私にとってうまくいきました:
また、この問題を解決するためにYouTube動画を作成しました: https://www.youtube.com/watch?v=7CNpLgwa0-c
私はあなたのHTMLがどのように見えるかわかりませんが、私にとってこれは私のログアウトボタンで機能しました:
onclick="javascript:FB.logout(function() { window.location.reload() }); return false;"
私はこれが誰かを助けることを願っています、少なくともこれは私の問題を修正しました。
2019年5月2日までに更新:
1)httpsが強制されるようになったため、 https:// localhost を使用する必要があります。 httpは使用できなくなります。
2)[設定]> [基本]> [プラットフォームを追加]に移動して[ウェブサイト]を選択し、ローカルホストをホワイトリストに登録する必要があります
2018年の更新
アプリダッシュボードのFacebookログイン製品で、クイックスタートをクリックし、指示に従います。ログアウトAPI呼び出しが機能し始めます!
注: WWWを選択して入力したhttp://localhost:5757/
をサイトURLに入力します。
www。example.comを使用するとこのエラーが発生し、www(example.com)を使用しないとエラーは発生しません...