在jquery重新加载后,我无法获得类似请求的页面

时间:2012-03-02 23:47:38

标签: php javascript facebook

注意:这是一个在页面标签页上运行的Facebook应用程序。

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

我在步骤php文件中使用ajax来更新数据库以进行步骤检查。如果ajax动作完成,动作将刷新页面。代码:

success: function(){
                             window.location = window.location.pathname;
                        }
刷新页面索引文件或数据文件后,无法获取页面喜欢的请求。然后如果我刷新页面手册(ctrl + F5)。它得到请求并包含下一步php文件。

有什么问题?为什么它不能在js刷新后得到喜欢的请求?

1 个答案:

答案 0 :(得分:0)

通过重定向,您可以刷新iframe。然而,已签名的facebook请求将通过POST发送到您的iframe。因此,如果您只是刷新iframe,则签名请求将不会再次发送,因为第二个请求(刷新之后),请求不是由Facebook执行,而是来自您的应用程序。

使用top.location重新加载整个页面(facebook +您的标签页)。