2012-03-02 9 views
0

注:これはページタブで実行されるFacebookブックアプリです。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ファイルでAJAXを使用してい

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'); 
    } 
} 

は、ここに私のインデックスコードです。 Ajaxアクションが完了すると、アクションはページを再表示します。コード:

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

ページインデックスファイルまたはデータファイルをリフレッシュした後で、ページが好きなリクエストを取得できません。私はページのマニュアル(Ctrl + F5)をリフレッシュする場合。それは要求を取得し、次のステップのPHPファイルを含める。

どうしたのですか? js refreshの後に好きなリクエストを得ることができないのはなぜですか?

答えて

0

リダイレクトを使用してiframeを更新します。ただし、署名されたFacebookのリクエストは、POST経由でiframeに送信されます。したがって、iframeをリフレッシュするだけで、署名されたリクエストは再度送信されません。リフレッシュ後の2回目のリクエストであり、要求はFacebookからではなくアプリケーション内から実行されるためです。

top.locationを使用して、完全なページ(facebook +自分のタブ)をリロードしてください。

+0

安全でないJavaScriptが、URL「my domain url」を持つフレームからURL「facebook page url」を持つフレームにアクセスしようとしています。ドメイン、プロトコル、ポートは一致する必要があります。 –

+0

コンソールでこのエラーが発生しました。 facebookは許可しません。 –

+0

はい、クロスドメインポリシーのために 'top.location'を読むことはできません。 'top.location = top.location'は動作しません。しかし、完全に新しい値に設定することもできます: 'top.location =" http://www.google.de ";'。だから、あなたの完全なTab-URLをPHP変数で保持し、リダイレクトURLを持つためにjavascriptに渡してください。 – apfelbox

関連する問題