0

私はこのようなものを持っています:

$.ajax({
    type: "POST",
    url: "index/test",
    data: { from: from, to: to }
}).done(function(res) {
    alert(res);
});

コントローラーからの答えは次のとおりです。

public function testAction()
{
    echo 555;
}

しかし、問題は、これが応答エコー 555 でレイアウトを返すことです。

レイアウトのレンダリングを拒否し、エコーの回答のみを残すにはどうすればよいですか?

4

2 に答える 2

2

ビューやレイアウトをレンダリングしたくないアクションでは、必要に応じて次のコード行を使用します。

//To disable view rendering
$this->_helper->viewRenderer->setNoRender(true);
//To disable layout
$this->_helper->layout->disableLayout();

例えば:-

public function testAction()
{
    $this->_helper->layout->disableLayout();
    $this->_helper->viewRenderer->setNoRender(true);
    echo 555;
}

コンテキストの切り替え、特に ajaxContext もたくないかもしれません。これは、より「ZF」な方法であり、自動的にレイアウトを無効にし、正しいヘッダーを設定します。

于 2012-07-19T12:02:08.117 に答える
0

コントローラー アクション メソッドにこのコード行を追加することで、レイアウトを無効にすることができます。

$this->_helper->layout->disableLayout();

 public function testAction()
 {
     $this->_helper->layout->disableLayout();
     echo 555;
 }
于 2012-07-19T12:02:06.707 に答える