Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我无法在jquery重新加载后获得页面请求_Php_Javascript_Facebook - Fatal编程技术网

Php 我无法在jquery重新加载后获得页面请求

Php 我无法在jquery重新加载后获得页面请求,php,javascript,facebook,Php,Javascript,Facebook,注意:这是一个运行在页面选项卡上的facebook应用程序 我有data.php文件,它可以获取所有内容。 我收到带有以下代码的签名请求: $facebook = new Facebook(array( 'appId' => $app_id, 'secret' => $app_secret, 'cookie' => false )); $access_token = $facebook->getAccessToken(); $signedRequest = $facebo

注意:这是一个运行在页面选项卡上的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'];
在我的索引文件中,我有一些针对fan或not的include操作fan和step 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');
    } 
}
我在step php文件中使用ajax更新数据库以进行step检查。如果ajax操作完成,则操作将刷新页面。代码:

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


怎么了?为什么js刷新后无法获得喜欢的请求?

通过重定向,您可以刷新iframe。但是,facebook的签名请求通过POST发送到您的iframe。因此,如果您只是刷新iframe,签名的请求将不会再次发送,因为刷新后的第二个请求不是由facebook执行的,而是从应用程序内部执行的


使用top.location重新加载整个页面facebook+您的选项卡。

不安全的JavaScript尝试从带有URL的框架my domain URL访问带有URL的框架facebook页面URL。域、协议和端口必须匹配。是的,不允许您读取top.location,因为您需要跨域策略。因此,top.location=top.location将不起作用。但您可以将其设置为一个全新的值:top.location=http://www.google.de;. 因此,只需将完整的选项卡URL保存在PHP变量中,并将其传递给javascript即可获得重定向URL。