我发现常见的PHP函数getallheaders()
在GAE上不可用。如何访问客户端设置的自定义标头?例如,AJAX帖子包含标题"RestAuth: pk_1234123"
。
答案 0 :(得分:2)
getallheaders()
是apache extension。
您可以从$_SERVER
超全局检索标头。所有请求标头都是大写的,标题名称前缀为' HTTP _'。
在你的情况下,标题' RestAuth'将以$_SERVER['HTTP_RESTAUTH']
的形式提供。
答案 1 :(得分:1)
从@Tom
引用的手册页跟进@Stuart..straightif (!function_exists('getallheaders'))
{
function getallheaders()
{
$headers = '';
foreach ($_SERVER as $name => $value)
{
if (substr($name, 0, 5) == 'HTTP_')
{
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
}
所以基本上从您的客户端发布RestAuth
,在服务器上发送HTTP_RESTAUTH
,上面的函数最终会返回Restauth
。如果您不同,请使用ucwords()。