CakePHP:Ajax请求的控制器响应错误

Jos*_*e S 3 ajax jquery cakephp cakephp-1.3

我正在使用jQuery向某些控制器操作发出AJAX请求.此请求是从同一控制器中编辑操作视图中的按钮激活的.

我的问题:Ajax请求返回编辑视图的所有代码(包含所有表单和输入)而不是预期的数字.如果我在添加动作的视图中放置相同的ajax按钮,它将完美地工作(它返回数字).

编辑和添加操作保持默认生成(使用烘焙).

这是用于发出ajax请求的jQuery函数

        $.ajax({
            type: 'POST',
            url: 'checkTargets',
            data: {target: tgt_array, channel: channel_type},
            success:function(data){
                $('#num_subscribers > span').html(data);
            },
            error:function(){
                $('#num_subscribers > span').html("The subscribers could not be loaded");
            },
            timeout: 5000
        });
    } 
Run Code Online (Sandbox Code Playgroud)

这是行动

function checkTargets() {
        if ($this->RequestHandler->isAjax()) { 
            if(!empty($this->params['form'])) {
                $data = $this->params['form'];

                if ($data['channel'] === 'SMS') {
                    $channel = 'sms';
                } else {
                    $channel = 'pin';
                }

                $targets = $this->processPostTargets($data['target']);
                $this->RequestHandler->respondAs('text');
                //This echo a NUMBER
                echo ClassRegistry::init('Selection')->countSubscribersInTarget($channel, $targets);

                Configure:: write('debug', 0);
                $this->autoRender = false;
                exit();

            }
        } 

    }
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

谢谢

goi*_*ing 5

只是一个无法访问所有内容的建议,你试过这个吗?

$this->autoRender = false;
$this->layout = 'ajax';
Run Code Online (Sandbox Code Playgroud)

另外我建议保持简单:

$.post("/controller/checkTargets", function(data) {
   alert(data);
}

function checkTargets() {
  $this->autoRender = false;
  $this->layout = 'ajax';
  echo "Im working";
}
Run Code Online (Sandbox Code Playgroud)

从那里开始