2012-03-02 5 views
0

참고 : 이것은 페이지 탭에서 실행되는 페이스 북 앱입니다.jquery reload 후 페이지가 좋아지지 않습니다.

나는 모든 것을 얻는 data.php 파일을 가지고 있습니다. 나는이 다음 코드를 사용하여 요청을 서명받을 :

$facebook = new Facebook(array(
'appId' => $app_id, 
'secret' => $app_secret, 
'cookie' => false 
)); 
$access_token = $facebook->getAccessToken(); 
$signedRequest = $facebook->getSignedRequest(); 
$user_id = $signedRequest['user_id']; 
$liked = $signedRequest['page']['liked']; 

을 내 인덱스 파일에서 내가 어떤 팬 여부 팬과 스텝 PHP 파일에 대한 조치를 포함합니다. 전 단계 검사에 대한 데이터베이스를 업데이트하는 단계 PHP 파일에서 아약스를 사용하고

require_once ('data.php'); 
if(isset($fid)){ 
    if(isset($liked)){ 
     $step = CHECK_STEP($fid); 
     if(isset($step)){ 
      if($step == '1'){ 
       include('fan-step1.php'); 
      } 
      if($step == '2'){ 
       include('fan-step2.php'); 
      } 
      if($step == '3'){ 
       include('fan-step3.php'); 
      } 
      if($step == '4'){ 
       include('fan-step4.php'); 
      } 
     } else { 
      include('fan.php'); 
     } 
    } else { 
      include('notfan.php'); 
    } 
} else { 
    if(isset($liked)){ 
      include('fan.php'); 
    } else { 
      include('notfan.php'); 
    } 
} 

:

여기 내 색인 코드입니다. 아약스 액션이 완료되면 액션이 페이지를 새로 고칩니다. 코드 :

success: function(){ 
          window.location = window.location.pathname; 
         } 

페이지 색인 파일이나 데이터 파일을 새로 고친 후 페이지 요청이 좋아지지 않습니다. 다음 페이지 수동 (ctrl + F5) 새로 고칩니다. 요청을 받고 다음 단계 PHP 파일을 포함합니다.

무엇이 잘못 되었나요? js refresh 후에 좋아하는 요청을 얻을 수없는 이유는 무엇입니까?

답변

0

리디렉션을 사용하면 iframe을 새로 고칩니다. 그러나 Facebook의 서명 된 요청은 POST를 통해 iframe으로 전송됩니다. 따라서 iframe을 새로 고치면 서명 된 요청은 다시 전송되지 않습니다. 두 번째 요청 (새로 고침 이후)은 요청이 Facebook에서 수행되지 않고 애플리케이션에서 수행되기 때문입니다.

top.location을 사용하여 전체 페이지 (facebook + 귀하의 탭)를 다시로드하십시오.

+0

안전하지 않은 JavaScript가 URL "my domain url"이있는 프레임에서 URL "facebook page url"이있는 프레임에 액세스하려고합니다. 도메인, 프로토콜 및 포트가 일치해야합니다. –

+0

콘솔에서이 오류가 발생했습니다. facebook does not는 허락한다. –

+0

예, 도메인 간 정책 이후로는 'top.location'을 읽을 수 없습니다. 'top.location = top.location' 따라서 작동하지 않습니다. 그러나 완전히 새로운 값으로 설정할 수 있습니다 : top.location = "http://www.google.de";'. 따라서 PHP 변수에서 전체 Tab-URL을 잡고 자바 스크립트로 전달하여 리디렉션 URL을 가져 오면됩니다. – apfelbox

관련 문제