我有以下代码
$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
...代码有什么问题?
答案 0 :(得分:3)
您不会告诉javascript您返回的是哪种数据,因此它被视为纯文本,因此您在日志中看到的只是一个完整的字符串,其中包含的内容是' s被服务器输出了。
response.error
也未定义,但自javascript中的undefined == false
起,您就没有看到它。
您必须在ajax调用中设置dataType: "json"
,或在CakePHP操作中添加$this->response->type('application/json');
。