【问题标题】:Refused to display Facebook URL in a frame because it set 'X-Frame-Options' to 'deny'拒绝在框架中显示 Facebook URL,因为它将“X-Frame-Options”设置为“拒绝”
【发布时间】:2019-03-09 15:07:45
【问题描述】:

我在其中一个 Angular6 应用程序中使用 Facebook Javascript SDK 来集成 FB 登录。如果我登录 Facebook,一切正常。但是当我从 Facebook 注销时,它显示一个错误,上面写着 Refused to display 'https://www.facebook.com/connect/ping?client_id=######&domain=######&origin=1&redirect_uri=####&response_type=token%2Csigned_request&sdk=joey&version=v3.1 in a frame because it set 'X-Frame-Options' to 'deny'.。我已经检查了我的 Facebook 应用程序仪表板中的 oauth URL 设置,并且它正确地拥有了我的域。如何解决这个问题?

我使用的代码是:

FB.getLoginStatus(
           (response: any): void => {
               if (response.status === 'connected' && response.authResponse) {
                   FB.api('/me/permissions', (permissions) => {
                       for (let i = 0; i < permissions.data.length; i++) {
                           if (permissions.data[i].status === 'declined' && permissions.data[i].permission === 'email') {
                               emailDeclined = true;
                           }
                       }
                       if (!emailDeclined) {
                           this.userFacebookLogin(response);
                       } else {
                           this.fbLogin('rerequest');
                       }
                   });
               } else {
                 console.log('Not connected');

               }
           },
           true
       );

【问题讨论】:

  • 谁说它需要修复?您网站上的任何内容是否因此而无法正常工作?否则,请忽略它 - 它很可能超出了您可以影响的范围。
  • 如果状态未知,我需要向用户显示一个弹出窗口。因此,我无法展示它。
  • “因此,我无法展示它” - 请具体说明,此错误是否阻碍了您进一步执行脚本,或者您的逻辑根本没有处理什么在这种情况下正确发生吗?到底哪里出了问题?
  • 我检查 FB.getLoginStatus() 如果它返回 unknownnot_authorised 我需要向用户显示一个弹出窗口,说他还没有连接,他需要下载我的应用程序来注册.因此,由于此错误,它无法从 Facebook 取回状态。如果您检查代码,您可以看到控制台日志记录。在实际代码中,我已经登录以显示通知。这没有发生,因为我无法从 Facebook 获得回复。
  • 我知道这种类型的错误会经常发生,因为 Facebook 在后台做的跨域 voodoo,但我从未见过它实际上破坏了某些东西。然后,如果它对您造成破坏,您可能必须向 Facebook 提交错误报告。 developers.facebook.com/support/bugs

标签: javascript angular facebook sdk


【解决方案1】:

尝试将应用仪表板设置中的站点 URL 更改为开发 URL。这是在花费了相当长的一段时间后为我指明了正确方向的答案——https://stackoverflow.com/a/53325827/3787212

【讨论】:

    猜你喜欢
    • 2022-07-18
    • 2017-05-22
    • 2020-05-21
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 2020-03-10
    • 2020-05-07
    • 2017-11-17
    相关资源
    最近更新 更多