簡體   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