【发布时间】:2017-06-09 22:51:37
【问题描述】:
我有一个 Angular 项目正在尝试连接到谷歌日历,这样我可以提交预订,它们会自动添加到 gmail 日历。这是有效的,但不是在正确的情况下。这是我遵循的example 使其工作。
我有一个 Angular 项目,登录时会检查 Web 应用程序是否有权使用日历。返回时,它使用 GET 将令牌保存到会话中,但是当使用 redirectUrl 返回时,我的 $_GET 未定义。即使参数是 in URL。我相信这归结为角度路由。
登录时我检查$_SESSION['token'] 是否已设置,如果没有通过javascript 重定向。 $authUrl = $this->client->createAuthUrl(); 然后是 location.href = $authUrl 以在 javascript 中重定向。这工作正常,用户接受许可并重定向回下一页,即www.example.co.uk/index/dashboard?code=4%2F5NgsMp8JepEmXVgR8pez0fQdk_jTPonsuExdV8&authuser=0&session_state=2dfb836cfc217135f907c7e6c0d9c526983b6f..9103&prompt=none
但是当我尝试$_GET['code'] 时,这是未定义的,这意味着无法运行设置令牌的方法:
if (isset($_GET['code'])) {
$this->client->authenticate($_GET['code']);
error_log("tou can access");
$_SESSION['token'] = $this->client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}
print_r($_GET); 字段:
Array ()
.htacces 规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /index.php/#/$1
</IfModule>
更新
这个错误是因为我从一个没有被设置为标题的 ajax 请求中加载了一个单独的 php。一旦我将GET 请求重新定位到与标头匹配的文件中,它就起作用了。
【问题讨论】:
-
什么是
print_r($_GET);? -
@abracadaver 数组\n(\n)\n,
-
看到页面是
dashboard而不是dashboard.php,你有一些 URL 重写 (.htaccess) 或其他可能会剥离这些。 -
@abracadaver 我有一个 htaccess。这是
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) /index.php/#/$1 </IfModule> -
最佳猜测:
#表示一个片段并且不发送到服务器。供客户使用。
标签: javascript php angularjs