繁体   English   中英

PHP header 请求未收到

[英]PHP header request not received

我通过 ajax 传递 header,

$.ajax({
     headers: {
          key: value
     }
});

我可以在浏览器中看到Request Header中的值。 我正在使用 Codeigniter 通过$this->input->get_request_header('key')获取密钥。

它在本地工作正常,但在服务器上不工作。

我已经尝试过apache_request_headers()$_SERVERgetallheaders()等等。但我在这个数组中看不到我的自定义 header。

那么如何通过 PHP 获得这个定制的 header 呢?

我遇到了 Codeigniter 3 和Authorization header 的问题。 它在本地工作,但在服务器上不起作用。 我发现其他标头可以工作——我将Authorization更改为Authorization2只是为了测试。 PHP getallheaders()方法还返回过滤掉Authorization header 的所有标头。

这使我得到了这个答案,所以我添加了:

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

.htaccess文件和Authorization header 重新出现。

这是如何在 Ajax 请求中设置 header 的示例。

$.ajax({
    type: "POST",
    beforeSend: function (request) {
        request.setRequestHeader(key, value);
    },
});

通过以这种方式发送它,您不必在使用 Codeigniter 3.1.11 的后端接收它时遇到问题,该版本包含您正在使用的 function。

如果未找到搜索到的 header,则返回请求标头数组的单个成员或 NULL。

$this->input->get_request_header('some-header', TRUE);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM