2012-03-02 2 views
0

ПРИМЕЧАНИЕ. Это приложение для facebook, которое выполняется на вкладке страницы.Я не могу получить понравившийся запрос страницы после перезагрузки jquery

У меня есть файл 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 файлов.

Вот мой указательный код:

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 в ступенчатых файлах PHP для обновления базы данных для этапа проверки. если действие ajax завершено, действие возвращает страницу. Код:

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

после обновления файла индекса страницы или файла данных не может получить понравившийся запрос страницы. затем, если обновить руководство по странице (ctrl + F5). Он получает запрос и включает следующий шаг php-файла.

Что не так? почему он не может получить понравившийся запрос после обновления js?

ответ

0

С вашим перенаправлением вы обновляете свой iframe. Однако подписанный запрос facebook отправляется через POST в ваш iframe. Поэтому, если вы просто обновите свой iframe, подписанный запрос не будет отправлен повторно, так как второй запрос (после обновления), запрос не выполняется через facebook, а из вашего приложения.

Обновите страницу (facebook + ваша вкладка), используя top.location.

+0

Небезопасная попытка JavaScript получить доступ к фрейму с URL-адресом «facebook page url» из фрейма с URL-адресом «мой домен-url». Домены, протоколы и порты должны совпадать. –

+0

Я получил эту ошибку в консоли. facebook не позволяет. –

+0

Да, вы не можете читать 'top.location', так как для междоменных политик. Поэтому 'top.location = top.location' не будет работать. Но вы можете установить его совершенно новое значение: 'top.location =" http://www.google.de ";'. Поэтому просто держите свой полный URL-адрес вкладки в переменной PHP и передайте его в javascript, чтобы иметь URL-адрес перенаправления. – apfelbox