php无法修改标头信息

时间:2015-06-24 12:51:54

标签: php utf-8 http-headers

我正在尝试返回一个已经被ut8_encoded的json。我在它之前设置了HTTP响应代码的标题。

   /**
     * Set the response header and HTTP response code and response the data
     * @param $data array of response to be encoded as json
     * @param int $status the http status (200 is default)
     * @return string the json presentation of the array given
     */
    public function response($data, $status = 200)
    {
        header("HTTP/1.1 " . $status . " " . $this->getRequestStatus($status));

        echo utf8_encode(json_encode($data, JSON_UNESCAPED_SLASHES));
    }

结果回来了,但有警告 -

  

警告:无法修改标题信息 - 在 113

上的RestApi.php中已经发送的标题(在RestApi.php:115处开始输出)

编辑: 对不起,我可能应该添加它 - 警告是在谈论引起警告的那两行。

如何删除警告?

如果我将此部分添加到.htaccess中,可能会发生错误?

<IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Methods "*"
    Header set Content-Type "application/json; charset=utf-8"
</IfModule>

我刚刚意识到。所以也许我真的不需要对响应进行编码

1 个答案:

答案 0 :(得分:1)

确保文件顶部或任何包含文件的顶部/底部没有空格。此外,请确保您已经没有回显到屏幕上。