我一直无法通过ajax POST函数来检索发送的变量。你能帮我吗?

我的Jquery代码:

$.ajaxSetup ({
        cache: false
    });

var selected = new Array();
$(document).ready(function() {
    $('.value').click(function () {
        if($(this).hasClass('strong'))
        {
            selected.splice(selected.indexOf(this.innerHTML), 1);
            submitData(selected);
            $(this).removeClass('strong');
        }
        else
        {
            selected.push(this.innerHTML);
            submitData(selected);
            $(this).addClass('strong')
        }
    });
});

function submitData(arDat)    {
    var arrayData =  {"param1" : JSON.stringify(arDat)};

    $.ajax({
        type: 'POST',
        url: 'http://localhost.local/coconut/trunk/challenges/values',
        data: arrayData,
        dataType: 'json',
        success: function(data){
            console.log(arrayData);
        },
        error: function(message){
            alert(message);
        }
    });
}


我的CakePHP控制器功能:

function values() {
        if ($this->RequestHandler->isAjax()) {
            $this->autoRender = false;
            Configure::write('debug', 0);
            $params = json_decode($_POST['param1']);
            //$result = json_encode($params);
            $this->set('submitValue', $params);
        } else {
            $this->redirect(array('controller' => 'challenges', 'action' => 'index'));
        }
    }


并在view.ctp文件中:

<?php debug($submitValue); ?>


但是我收到以下错误:
通知(8):未定义变量:SubmitValue

在萤火虫中,我看到以下内容:

Parametersapplication/x-www-form-urlencoded
param1  ["Business","Life","Health"]
Source
param1=%5B%22Business%22%2C%22Life%22%2C%22Health%22%5D


有人知道我在做什么错吗?

谢谢!

编辑:

关于我想要什么的更多说明。我想使用$ this-> set('submitValue',$ params); (因此$ submitValue)在其他视图中的其他位置。

最佳答案

CakePHP函数'isAjax()'检查请求是否为原型Ajax请求。

您没有使用Prototype,而是使用jQuery-因此大概它总是返回false,因此从来没有设置SubmitValue。

10-04 13:04