You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman发送的Header未被PHP脚本接收,Nginx/Apache环境求助

解决PHP无法接收Postman发送的请求Header问题

我之前也碰到过一模一样的情况——Postman控制台明明显示Header发出去了,PHP用getallheaders()就是拿不到,Nginx和Apache环境都踩过坑。结合你的场景,大概率是这几个原因导致的,给你整理了对应的解决办法:

1. 下划线Header被服务器拦截了

HTTP标准里其实不建议Header名称用下划线(比如你用的api_token),Nginx默认会直接丢弃带下划线的Header,Apache在默认配置下也会有同样的处理逻辑。

解决思路有两个:

  • 改Header名称:把api_token换成api-token(用连字符替代下划线),这种最省心,也符合HTTP规范;
  • 修改服务器配置允许下划线Header:
    • Nginx:在你的站点配置的server块或者全局的http块里添加underscores_in_headers on;,然后执行nginx -s reload重启服务;
    • Apache:在httpd.conf或者项目根目录的.htaccess里加一行:SetEnvIfNoCase ^api_token$ ^(.*)$ HTTP_API_TOKEN=$1,这样会把下划线的Header映射成PHP能识别的格式,getallheaders()就能拿到了。

2. getallheaders()的兼容性问题

如果PHP是用FPM(FastCGI)模式运行的,getallheaders()在部分环境下会抽风,没法正确获取所有Header。这时候可以换个方式,直接从$_SERVER数组里提取Header——毕竟所有请求Header最终都会被转换成HTTP_开头的$_SERVER变量。

给你一个兼容写法,替换掉原来的代码试试:

<?php
function getRequestHeaders() {
    $headers = [];
    foreach ($_SERVER as $key => $value) {
        // 提取所有HTTP_开头的变量
        if (str_starts_with($key, 'HTTP_')) {
            // 把HTTP_API_TOKEN转换成Api-Token这种标准格式
            $headerKey = str_replace(' ', '-', ucwords(str_replace('_', ' ', strtolower(substr($key, 5)))));
            $headers[$headerKey] = $value;
        }
    }
    // 处理Content-Type这类特殊Header(有些环境不会转成HTTP_前缀)
    if (isset($_SERVER['CONTENT_TYPE'])) {
        $headers['Content-Type'] = $_SERVER['CONTENT_TYPE'];
    }
    return $headers;
}

$headers = getRequestHeaders();
foreach($headers as $key=>$val){
    echo $key . ': ' . $val . '<br>';
}
?>

3. 排查Postman的隐性配置问题

虽然你说控制台确认Header已发送,但还是可以检查这两个细节:

  • 有没有勾选"Disable follow redirects"?如果你的请求触发了重定向(比如HTTP到HTTPS跳转),Postman默认不会把自定义Header带到重定向后的请求里;
  • 测试一下简单的Header值:比如把api_token的值改成纯英文数字(比如test123),排除特殊字符编码导致的传输丢失问题。

4. 用curl验证,排除Postman的问题

可以用curl命令直接发请求,看看PHP能不能接收到Header,这样能快速定位是Postman的问题还是服务器的问题:

curl -H "api-token: test123" http://你的域名/test.php

如果curl请求能正常返回Header,那问题肯定出在Postman的配置上;如果curl也拿不到,那继续排查服务器和PHP的配置。


内容的提问来源于stack exchange,提问作者wmac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:46:18