未在Apache localhost中接收X_REQUESTED_WITH请求标头

时间:2013-12-20 02:32:47

标签: ajax apache http-headers xmlhttprequest localhost

我刚刚在Windows 7桌面上设置了Apache 2.4 32位,我正在测试一个简单的AJAX网站。我有一个.htaccess文件,它将所有非资源文件请求定向到index.php,在这个.php脚本中,我检查$_SERVER["HTTP_X_REQUESTED_WITH"]以确定给定的请求是否是ajax(我自己设置此头文件)我发送ajax请求。)

虽然标头已经设置好,但是在我的.php脚本运行之前,Apache似乎正在删除它。我可以在Chrome中看到请求标头,但在.php脚本中没有。我甚至尝试在Apache的access.log中记录\"%{X_REQUESTED_WITH}i\",但我也没有在那里看到它。

当站点在Bluehost上运行时,此功能有效。我是否需要配置Apache才能使其在本地计算机上运行?

1 个答案:

答案 0 :(得分:0)

由于“安全”原因,Apache 2.4现在会删除带有下划线的所有标头。

根据他们的文档,您可以通过将其添加到您的htaccess中来添加它们:

SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding

其中Accept.Encoding和Accept-Encoding是标题名称。下划线分别用点和连字符替换。