0

我在 WAMP 上运行 index.php,我想做的就是返回 200 Ok 标头。我有:

echo "Index3<br />";
//All I need to do is execute a method.
$request_method = strtolower($_SERVER['REQUEST_METHOD']);
echo "Serving " .$request_method;
//And send back a response header.
header('HTTP/1.1 200 Ok');
foreach (getallheaders() as $name => $value) {
    echo "$name: $value\n<br />";
}

我在 Firebug 中什么也看不到(在控制台和网络选项卡中)。在 foreach 中,我看到所有关于 Accept、Connect、Cache 等的标题,但没有 200?当我在上面的代码中更改为 400 响应时,我只会在控制台中得到一些东西,为什么?

4

2 回答 2

1

标头必须是发送到浏览器的第一件事。你echo在你的header. 你不可以做这个。

此外,HTTP/1.1 200 OK不被视为“标题”,如Accept, Cacheare。它通常在某些statusCode属性下可用。Firebug 应该在“网络”选项卡中显示它。它将列在每个请求旁边。

于 2012-11-08T19:39:15.883 回答
0

您的电话header()需要在任何echo陈述之前进行。一旦开始回显内容,修改 HTTP 标头就为时已晚。

这是因为标头在 HTTP 正文之前。如果您无法控制echobefore 标头调用的使用,您可以使用输出缓冲区--- ob_start()ob_end_flush() --- 以防止它们干扰标头。

于 2012-11-08T19:42:07.890 回答