我有以下代码,应该以内容类型输出: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);
}