首页 > 解决方案 > 自定义标题正在被剥离

问题描述

我将自定义X-Authorization标头传递给我的 API。

在我的 API 中,我允许这样的标题:

header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With, X-Authorization');

我正在使用检查标题print_r(apache_request_headers())

响应中唯一的参考X-Authorization是:

[access-control-request-headers] => x-authorization

我正在使用CGI它,我相信它会去除常规Authorization标题,这就是我尝试自定义标题的原因。

标签: phpapachehttp-headers

解决方案


您将能够看到 $_SERVER 超级全局下的请求标头,将密钥转换为大写,前缀为 HTTP_ & 将 - 替换为 _

例如: X-foo-bar: baz

将在:

$_SERVER['HTTP_X_FOO_BAR']

以下请求:

curl -i 0:9000/test.php -H 'X-foo-bar: baz'

将返回:

HTTP/1.1 200 OK
Host: 0:9000
Date: Wed, 27 Jan 2021 21:33:33 GMT
Connection: close
X-Powered-By: PHP/7.3.24
Content-type: text/html; charset=UTF-8

baz

PHP (test.php):

<?php
echo ($_SERVER['HTTP_X_FOO_BAR']);

推荐阅读