当使用Ajax发送HTTP请求时,通常需要将一些HTTP头信息传递给服务器,因此,我们需要在PHP中获取这些HTTP头信息。
在PHP中,可以通过$_SERVER['HTTP_X_REQUESTED_WITH']全局变量来判断当前请求是否为Ajax请求。如果请求是Ajax请求,那么可以通过$_SERVER['HTTP_XXXX']来获取HTTP头信息,其中'XXXX'是标准的HTTP头。以下是获取Ajax请求头信息的方法:
方法一
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$headers = [];
foreach ($_SERVER as $key => $value) {
if (substr($key, 0, 5) === 'HTTP_') {
$header = str_replace(' ', '-', ucwords(str_replace('_', ' ', strtolower(substr($key, 5)))));
$headers[$header] = $value;
}
}
print_r($headers);
}
在这个示例中,首先检查$SERVER['HTTP_X_REQUESTED_WITH']是否存在,如果存在并且值为'xmlhttprequest',则表示当前请求为Ajax请求。接下来遍历$_SERVER数组,并将以'HTTP'开头的键转换为标准的HTTP头格式,然后将它们存储到一个数组中,最后使用print_r函数来输出所有HTTP头信息。
方法二
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$headers = getallheaders();
print_r($headers);
}
在这个示例中,首先检查$_SERVER['HTTP_X_REQUESTED_WITH']是否存在,如果存在并且值为'xmlhttprequest',则表示当前请求为Ajax请求。接下来使用getallheaders()函数来获取所有HTTP头信息,并使用print_r函数来输出所有HTTP头信息。
两种方法都可以获取Ajax发送的HTTP头信息,其中第二种方法更简单。但是,需要注意的是,getallheaders()函数在Apache服务器上运行良好,但在其他Web服务器上可能不支持,因此使用第一种方法是更可靠的方案。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php获取ajax的headers方法与内容实例 - Python技术站