gpt4 book ai didi

PHP apache_request_headers() 与现实不符(经 Firebug 确认): why?

转载 作者:可可西里 更新时间:2023-11-01 13:52:05 24 4
gpt4 key购买 nike

我用 PHP 编写了一个使用 Ajax 请求的网络应用程序(使用 YUI.util.Connect.asyncRequest 制作)。

大多数时候,这工作正常。发送请求时带有 X-Requested-WithXMLHttpRequest。我的 PHP Controller 代码使用 apache_request_headers() 来检查传入请求是否为 Ajax,并且一切正常。

但并非总是如此。间歇性地,我遇到了发送 Ajax 请求的情况(并且 Firebug 向我确认请求中的 header 包含 XMLHttpRequest 的 X-Requested-With)但是 apache_request_headers() 没有在其列表中返回该 header 。

当我 var_dump apache_request_headers() 时的输出如下(注意缺少 X-

'Host' => string 'peterh.labs.example.com' (length=26)
'User-Agent' => string 'Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.3) Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.3' (length=105)
'Accept' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' (length=63)
'Accept-Language' => string 'en-gb,en;q=0.5' (length=14)
'Accept-Encoding' => string 'gzip,deflate' (length=12)
'Accept-Charset' => string 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' (length=30)
'Keep-Alive' => string '300' (length=3)
'Connection' => string 'keep-alive' (length=10)
'Referer' => string 'http://peterh.labs.example.com/qmail/' (length=40)
'Cookie' => string 'WORKFLOW_SESSION=55f9aff2051746851de453c1f776ad10745354f6' (length=57)
'Pragma' => string 'no-cache' (length=8)
'Cache-Control' => string 'no-cache' (length=8)

但是 Firebug 告诉我:

Request Headers:
Host peterh.labs.example.com
User-Agent Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.3) Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.3
Accept text/html,application/xhtml+xml,application/xml;q=0.9,**;q=0.8
Accept-Language en-gb,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
X-Requested-With XMLHttpRequest
Referer http://peterh.labs.example.com/qmail/
Cookie WORKFLOW_SESSION=55f9aff2051746851de453c1f776ad10745354f6

在执行相同代码时,这种不匹配(显然)是间歇性的。但说到软件,我不相信“间歇性”!帮助!

最佳答案

我不确定为什么 apache_request_headers() 和 firebug 不匹配,但是为了读取请求 header ,您可以使用 $_SERVER super 全局

客户端发送的每个 header (无论客户端如何)都将到达 $SERVER 数组。该 header 的 key 将带有 HTTP 前缀,所有字母大写和破折号都转换为下划线 (_)

在您的情况下,您可以在以下方面找到必要的值(value):

$_SERVER['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'

关于PHP apache_request_headers() 与现实不符(经 Firebug 确认): why?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/249968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com