Php 我无法在jquery重新加载后获得页面请求
注意:这是一个运行在页面选项卡上的facebook应用程序 我有data.php文件,它可以获取所有内容。 我收到带有以下代码的签名请求: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 = 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。