header Content-Type:application / json返回text / html

时间:2014-08-07 04:52:40

标签: php json apache header

我有以下代码应该在content-type中输出: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中的标题分配?

1 个答案:

答案 0 :(得分:1)

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

    public static function getTest()
    {
        $result = ['foo' => 'bar'];

        return Response::json($result);
    }