2017-02-27 6 views
2

私のextbaseベースのTYPO3 CMS拡張では、JsonViewをビューオブジェクトとして使用してApiControllerを作成しました。戻り値は魅力のように機能し、正しいヘッダーContent-type: application/jsonが設定されます。認証メッセージや検証エラーを見つからないような他の応答を返すようにTYPO3のJSONでエンコードされた例外JsonViewを持つextbaseコントローラ

は、私が現在使用して:

$data = ["errors" => [ 
    "status" => 401, 
    "message" => "Missing access token" 
]]; 
$this->throwStatus($status, null, json_encode($data)); 

私は、ヘッダーContent-type: text/htmlが設定されている$this->throwStatus()を使用する場合。 $this->throwStatus()を使用する前に手動でheader("Content-type: application/json");を設定しても

正しいコンテンツタイプヘッダーで応答を作成するにはどうすればよいですか?

+0

あなたは 'ます$ this->対応 - >のsetHeader(「コンテンツタイプ」、「アプリでヘッダーを設定しようとしたことがありlication/json '、true); '? – undko

答えて

2

あなたが状況を投げる前に、レスポンスオブジェクトにヘッダを設定しよう:

$this->response->setHeader('Content-Type', 'application/json', true); 
$this->response->sendHeaders(); 

専用のページタイプを通して、あなたのデータにアクセスしている場合は、TypoScriptの中で、このページタイプのヘッダを設定することができます。

myPageType.config.additionalHeaders { 
    10 { 
     header = Content-Type: application/json 
     replace = 1 
    } 
} 
私はトピックについての私のポストにこれを追加します

https://usetypo3.com/json-view.html

関連する問題