自定义 headers 不适用于 php 5.6 - apache 2.4、debian 8 jessie
Custon headers not working on php 5.6 - apache 2.4, debian 8 jessie
我刚刚将我的 debian 7 wheezy 升级到了 debian 8 jessie。 Apache 和 php 从 apache 2.2.22 to 2.4.10
和 php 5.4.x to 5.6.9
相应更新。现在,当使用 ajax 请求发送自定义 header 时,它们不会出现在 php 中。这是一个简单的示例,其中 index.php
和 ajax.php
文件分别包含以下内容。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(document).bind("ajaxSend", function(elm, xhr, s){
xhr.setRequestHeader('MY_HEADER', 'my_header_value');
});
$.ajax({
type : "POST",
url : 'ajax.php',
data : {},
error : function() {
alert('error');
},
success : function(data) {
alert(data);
}
});
});
</script>
</head>
<body>
<?php //phpinfo();?>
</body>
</html>
和
<?php
if (isset($_SERVER['HTTP_MY_HEADER'])) {
echo $_SERVER['HTTP_MY_HEADER'];die;
}
print_r($_SERVER);
?>
在 $_SERVER
中 HTTP_MY_HEADER
不存在。
我已经在我的另一台装有 debian 7、apache 2.2 和 php 5.4 的服务器上尝试过这个例子,它工作正常 - header 已设置。但对于升级版本,它没有。
Mod headers 已启用并重新启动 apache。
谢谢
这些 header 是什么?如果是带下划线的 header,这个区别来自 Apache 2.4:
Header names with underscores ignored in php 5.5.1 / apache 2.4.6
我刚刚将我的 debian 7 wheezy 升级到了 debian 8 jessie。 Apache 和 php 从 apache 2.2.22 to 2.4.10
和 php 5.4.x to 5.6.9
相应更新。现在,当使用 ajax 请求发送自定义 header 时,它们不会出现在 php 中。这是一个简单的示例,其中 index.php
和 ajax.php
文件分别包含以下内容。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(document).bind("ajaxSend", function(elm, xhr, s){
xhr.setRequestHeader('MY_HEADER', 'my_header_value');
});
$.ajax({
type : "POST",
url : 'ajax.php',
data : {},
error : function() {
alert('error');
},
success : function(data) {
alert(data);
}
});
});
</script>
</head>
<body>
<?php //phpinfo();?>
</body>
</html>
和
<?php
if (isset($_SERVER['HTTP_MY_HEADER'])) {
echo $_SERVER['HTTP_MY_HEADER'];die;
}
print_r($_SERVER);
?>
在 $_SERVER
中 HTTP_MY_HEADER
不存在。
我已经在我的另一台装有 debian 7、apache 2.2 和 php 5.4 的服务器上尝试过这个例子,它工作正常 - header 已设置。但对于升级版本,它没有。
Mod headers 已启用并重新启动 apache。
谢谢
这些 header 是什么?如果是带下划线的 header,这个区别来自 Apache 2.4:
Header names with underscores ignored in php 5.5.1 / apache 2.4.6