1

私は REST API を作成しており、JSON 形式で応答を返したいと考えています。それで、「ContextSwitch」について読みました。しかし、ヘッダーを「application/json」に変更してデータをjsonに変換することはできません。

これが私のコントローラーのコードです:

 public function preDispatch()
{

    $this->getRequest()->setParam('format', 'json');
    $this->_helper->layout()->disableLayout();
    $this->_helper->viewRenderer->setNoRender(true);
}


public function _init()
{

    $contextSwitch = $this->_helper->getHelper('contextSwitch');
    $contextSwitch ->addActionContext('post', 'json')
                    ->initContext('json');
}

public function postAction()
{
    echo 'test';

}

Curl コマンド ライン ツールで応答を確認すると、次のメッセージが表示されました。

< Content-Length: 4
< Content-Type: text/html
< 
* Connection #0 to host localhost left intact
test* Closing connection #0

ヘッダーとデータが変更されないのはなぜですか? どうすれば修正できますか?

4

2 に答える 2

1

_init()メソッドがまったく実行されていないようです。に名前を変更してみてくださいinit()

于 2013-07-31T13:00:54.297 に答える