如果代码为204,则PHP标头不显示自定义消息

时间:2016-03-23 06:43:54

标签: php http-headers

我正在编写和API,我抛出和Exception调用一个方法来组成要返回的标头。如果没有内容,我会使用自定义消息和代码204抛出异常。

throw new Exception("my message", 204);

组成标题的方法

if ($status_codes[$code] !== null) {
    $status_string = $code . ' ' . $status_codes[$code];
    header($_SERVER['SERVER_PROTOCOL'] . ' ' . $status_string, true, $code);

    if ($code != 200) die(json_encode(["code" => $code, "message" => $message]));

}

问题在于,当我使用代码204时,我只显示响应状态为204 No content,但我的代码消息未显示。我尝试使用代码400并显示自定义消息。

1 个答案:

答案 0 :(得分:2)

  

204响应绝不能包含消息体,因此总是在头字段之后的第一个空行终止。

<强> RFC 2616

还需要单词吗? :)