cakePHP - JSON_encode ajax response-未定义

时间:2014-05-17 17:46:09

标签: ajax json cakephp

我有以下代码

$this->autoRender = false;
$data['success'] = true;
$data['data'] = 'Target Successfully set';
echo json_encode($data);

发送对ajax请求的响应..

我有以下

success:function (response, textStatus) {
        if (response.error){
           //show error message...
        }else{
           //show success message...
           console.log(response); // shows what is expected 
           //ie. {"success":true,"data":"Target Successfully set"} 
        }

但是,当我尝试访问response.data时,我收到Undefined ...代码有什么问题?

1 个答案:

答案 0 :(得分:3)

您不会告诉javascript您返回的是哪种数据,因此它被视为纯文本,因此您在日志中看到的只是一个完整的字符串,其中包含的内容是' s被服务器输出了。

response.error也未定义,但自javascript中的undefined == false起,您就没有看到它。

您必须在ajax调用中设置dataType: "json",或在CakePHP操作中添加$this->response->type('application/json');