header Content-Type: application/json returning text/html


header Content-Type: application/json returning text/html

我有以下代码,应该以内容类型输出:json.

public static function getTest()
{
    header('Content-Type: application/json; charset=utf-8');
    $result = ['foo' => 'bar'];
    $json = json_encode($result);
    echo $json;
}

我的生产服务器(godaddy共享主机- Apache 2.4.10 &PHP 5.4.31)响应类型返回:application/json。然而,在我的本地WAMP服务器(Apache 2.4.9 &PHP 5.5.12)的响应类型是'text/html'(见Firebug)。这给我带来了问题,因为我开发了一系列需要json的API。我的第一个猜测是apache mime类型问题,但这并没有为我解决。

任何想法?我很抱歉,如果这可能是更多的服务器配置问题。但我很困惑,并认为这可能是我错过了一些东西在我的PHP.ini甚至我的代码。

感谢所有的帮助。谢谢!

编辑-我已经摆弄了一下,学到了一些别的东西。如果我将"content -type"更改为application/xml,生产服务器就会输出预期的错误,反映xml标准格式不正确的内容。但是,我的本地WAMP服务器仍然使用内容类型为text/html的响应头。在Apache或PHP中是否有覆盖头分配的设置?

我仍然不知道为什么我的两个服务器对header命令的行为不同。但好消息是,我在Laravel中这样做,并在那里找到了解决方案。这对我来说非常有效:

    public static function getTest()
    {
        $result = ['foo' => 'bar'];
        return Response::json($result);
    }