Facebook sdk对arbiter.php提出了不安全的请求

时间:2013-02-05 11:55:41

标签: facebook oauth

我有一个Facebook应用程序,它从我的服务器加载为facebook粉丝页面中的iframe。 我使用javascript sdk来处理facebook身份验证。

当我通过http访问IE中的粉丝页面时,控制台会显示以下https安全性错误: SEC7111:http://static.ak.facebook.com/connect/xd_arbiter.php?version=18

危及HTTPS安全性

会导致用户看到“不安全的内容”。警告。 我理解它与IE处理跨域iframe加载的方式有关。

更多详情:

  • 调用FB.init时发生(调用FB.init时fb sdk请求xd_arbiter.php)
  • 仅在IE(特别是IE 9)中发生。 Chrome或FF中没有安全警告。
  • 仅在通过http而不是https加载facebook时发生。我本来以为它会反过来......所以即使粉丝页面是通过http加载的,facebook也必须通过https加载。

我尝试过的事情:

  • 在调用init之前设置FB._https = true。 (不起作用,弃用)
  • 确保通过https(在channel.html中)加载sdk。
  • 确保我对服务器的所有请求都是通过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在不断发展,但我首先要确保我没有做错事。

由于

1 个答案:

答案 0 :(得分:0)

我建议您将所有资产放在同一协议上,无论是HTTP还是HTTPS。

然后,对于远程请求,您是否考虑在服务器上创建PHP端点,因此您的AJAX请求可以调用您的PHP脚本(而不是调用跨域URL),然后将PHP卷曲到做跨域的东西?