繁体   English   中英

标头Content-Type:application / json返回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哑剧类型问题,但对我而言并没有解决。

有任何想法吗? 很抱歉,如果这可能更多是服务器配置问题。 但是我感到困惑,认为我有可能错过了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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM