![](/img/trans.png)
[英]ajax request header has content-type application/json on dev server but text/html on production
[英]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哑剧类型问题,但对我而言并没有解决。
有任何想法吗? 很抱歉,如果这可能更多是服务器配置问题。 但是我感到困惑,认为我有可能错过了PHP.ini甚至代码中的某些内容。
感谢所有的帮助。 谢谢!
编辑-我摆弄了一下,学到了其他东西。 如果将“内容类型”更改为application / xml,则我的生产服务器会吐出预期的错误,反映出xml标准格式的内容格式不正确。 但是,我的本地WAMP服务器仍然使用内容类型为text / html的响应标头。 是否有设置可以覆盖Apache或PHP中的标头分配?
我仍然不知道为什么我的两个服务器在header命令中的行为有所不同。 但是,好消息是我正在Laravel中进行此操作,并在那里找到了解决方案。 这对我来说效果很好:
public static function getTest()
{
$result = ['foo' => 'bar'];
return Response::json($result);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.