我有以下代码应该在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中的标题分配?答案 0 :(得分:1)
我仍然不知道为什么我的两个服务器在header命令中表现不同。但好消息是我在Laravel内这样做,我在那里找到了解决方案。这对我很有效:
public static function getTest()
{
$result = ['foo' => 'bar'];
return Response::json($result);
}