2012-02-13 1 views
1

나는 많은 인터넷 검색을 수행했으며이 문제에 대한 답을 찾지 못했습니다.HTTPS에서 검색 할 때 HTTP를 통해 자산을로드하는 Facebook

페이스 북의 JS SDK 구현을 위해 페이스 북 문서를 따라했습니다. 다음은이 하나 개의 파일을 제외하고 꽤 잘 작동 내 페이지

<script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
      appId : 'xxxxxxxxxxxxx', 
      status : true, // check login status 
      cookie : true, // enable cookies to allow the server to access the //session 
      xfbml : true, // parse XFBML 
      oauth :true // Enable oauth 2.0 
     }); 
     FB.Canvas.setAutoResize(); //set size according to iframe content size 
    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     d.getElementsByTagName('head')[0].appendChild(js); 
    }(document)); 

</script> 

의 코드는 다음과 같습니다 모든 http://static.ak.facebook.com/connect/canvas_proxy.php

. js은 HTTPS를 통해 정상적으로로드됩니다. 그러나 페이스 북은 여전히 ​​일반 HTTP를 통해 canvas_proxy.php에로드 :

http://static.ak.facebook.com/connect/canvas_proxy.php?version=3#behavior=p&method=setSize&params=%7B%22height%22%3A714%2C%22width%22%3A1100%2C%22frame%22%3A%22iframe_canvas%22%7D

는 왜입니까? 나는 모든 것을 올바르게하고있는 것처럼 보입니다. HTTPS 사용자는 해당 URL로 인해 내 페이지를 방문 할 때 보안 경고를받습니다.

답변

0

FB.init 호출 전에 FB._https = true로 설정해보십시오. 그러면 canvas_proxy.php가 처리됩니다.

원래 솔루션의 자세한 내용은 Facebook JavaScript SDK over HTTPS loading non-secure items

+0

나는 그것을 시도했지만 여전히 불행히도 HTTP를 통해로드됩니다. 캐시 된 요청 인 경우 캐시/쿠키를 지우려고했지만 여전히 HTTP를로드합니다. 그래도 감사합니다. –