如何防止Facebook JavaScript SDK加载混合内容

如何防止Facebook JavaScript SDK加载混合内容,javascript,facebook,facebook-javascript-sdk,mixed-content,Javascript,Facebook,Facebook Javascript Sdk,Mixed Content,我创建了一个允许用户登录Facebook的web应用程序。内容托管在Amazon Web服务服务器上。但是,当我运行我的应用程序时,会出现以下错误: 混合内容:位于“…6cf&origin=http%3A%2F%2Fec2-34-20[…]”的页面是通过HTTPS加载的,但请求了不安全的字体“”。此请求已被阻止;内容必须通过HTTPS提供 我收到一个混合内容错误,因为我从同一个页面请求http和https资源。我只想将我的页面更改为只请求安全资源,但不幸的是,由于HTTP文件是由Facebook

我创建了一个允许用户登录Facebook的web应用程序。内容托管在Amazon Web服务服务器上。但是,当我运行我的应用程序时,会出现以下错误:

混合内容:位于“…6cf&origin=http%3A%2F%2Fec2-34-20[…]”的页面是通过HTTPS加载的,但请求了不安全的字体“”。此请求已被阻止;内容必须通过HTTPS提供

我收到一个混合内容错误,因为我从同一个页面请求http和https资源。我只想将我的页面更改为只请求安全资源,但不幸的是,由于HTTP文件是由Facebook加载的,我不能简单地将HTTP://替换为//。我的html代码如下:

<!DOCTYPE html>
<html>
    <head>
        <title>Facebook Login JavaScript Example</title>
        <meta charset="UTF-8">
        <!-- <script src="//connect.facebook.net/en_US/all.js"></script> -->
        <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    </head>
<body>
<div class="fb-login-button" data-max-rows="1" data-size="large" data-button-type="continue_with" data-show-faces="false" data-auto-logout-link="false" data-use-continue-as="false"></div>
<script>
    $(document).ready(function() {
    $.ajaxSetup({ cache: true });
    $.getScript('https://connect.facebook.net/en_US/sdk.js', function(){

      FB.init({
        appId: '767877510042378',
        version: 'v2.9'
      });
      // console.log(FB._https);
      $('#loginbutton,#feedbutton').removeAttr('disabled');
      FB.getLoginStatus(function(response){
        console.log(response);
      });
    });
  });
</script>
</body>
</html>

Facebook登录JavaScript示例
$(文档).ready(函数(){
$.ajaxSetup({cache:true});
$.getScript('https://connect.facebook.net/en_US/sdk.js,函数(){
FB.init({
appId:'767877510042378',
版本:“v2.9”
});
//console.log(FB.\u https);
$('loginbutton,'feedbutton')。removeAttr('disabled');
FB.getLoginStatus(函数(响应){
控制台日志(响应);
});
});
});

我很感兴趣的是,是否有某种方法可以强制Facebook只加载安全资源。

错误似乎与Google Webfont有关,Facebook没有嵌入这些字体,这一定是你的应用程序自己做的。(当然,Facebook本身并没有在这里加载任何东西——客户端的浏览器是。)我原本也觉得这很可能。但是,我检查了资源请求头,它说请求的来源是。所以我认为Facebook脚本可能会请求webfont。哈,很有趣。请求web字体的脚本是一个跨域帮助器脚本,当直接在浏览器中调用时,它会以某种方式显示HTML警告。(不确定这是否是它请求web字体的原因?)-