3

Facebookのファンページ内のiframeとしてサーバーからロードされるFacebookアプリがあります。Facebook認証を処理するためにjavascript sdkを使用します。

http経由で IE のファンページにアクセスすると、コンソールに次の https セキュリティ エラーが表示されます。

これにより、ユーザーに「安全でないコンテンツ」の警告が表示されます。IE がクロスドメイン iframe の読み込みを処理する方法に関係していることを理解しています。

詳細:

  • FB.init が呼び出されたときに発生します (FB.init が呼び出されたときに fb sdk によって xd_arbiter.php が要求されます)。
  • IE (具体的には IE 9) でのみ発生します。Chrome または FF にセキュリティ警告はありません。
  • Facebook が https ではなく http を介してロードされた場合にのみ発生します。私はそれが逆だと思っていたでしょう...ファンページがhttp経由でロードされていても、Facebookはhttps経由で何かをロードしているに違いありません。

私が試したこと:

  • init を呼び出す前に FB._https = true を設定します。(機能しません、非推奨)
  • SDK が https (channel.html 内) を介してロードされていることを確認します。
  • サーバーに対するすべてのリクエストが https 経由であることを確認しました。

これがinitへの私の呼び出しです:

FB.init({
  appId      : '{$appid}',
  status     : true,
  cookie     : false,
  xfbml      : true,
  oauth      : true,
  channelUrl : '//my_url.com/channel.html'
});

そして channel.html の内容:

<script src="//connect.facebook.net/en_US/all.js"></script>

では、sdk に https 経由で xd_arbiter.php を強制的にロードさせて、警告が消えるようにするにはどうすればよいでしょうか?

SDK が常に進化していることは理解していますが、まず、何か間違ったことをしていないことを確認したいと思います。

ありがとう

4

1 に答える 1

0

HTTP または HTTPS のいずれかの同じプロトコルですべてのアセットを使用することをお勧めします。

次に、リモート リクエストの場合、サーバー上に PHP エンドポイントを作成することを検討しましたか。これにより、AJAX リクエストは、クロス ドメイン URL を呼び出す代わりに、同じドメインにある PHP スクリプトを呼び出し、PHP curl を取得してクロス ドメインを実行できます。ドメインのもの?

于 2013-02-05T12:10:16.047 に答える