【问题标题】:Not receiving X_REQUESTED_WITH request header in Apache localhost在 Apache localhost 中未收到 X_REQUESTED_WITH 请求标头
【发布时间】:2014-01-08 19:52:49
【问题描述】:

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

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

当站点在 Bluehost 上运行时,此功能有效。我是否需要配置 Apache 才能让它在我的本地机器上运行?

【问题讨论】:

    标签: ajax apache http-headers xmlhttprequest localhost


    【解决方案1】:

    出于“安全”原因,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 是标头名称。下划线分别替换为点和连字符。

    【讨论】:

    • 感谢您的帮助,利亚姆。为清楚起见,这是我添加到 .htaccess 文件中的内容。您还必须确保启用了 mod_setenvif 和 mod_headers 模块。 SetEnvIfNoCase ^X.REQUESTED.WITH$ ^(.*)$ fix_accept_encoding=$1 RequestHeader set X-REQUESTED-WITH %{fix_accept_encoding}e env=fix_accept_encoding
    猜你喜欢
    • 2020-10-14
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2021-08-10
    • 2020-01-29
    • 2013-12-17
    相关资源
    最近更新 更多