Rohan Kumar接受的回答:
将$ .post()更改为
$.post("monitor/loadEVents", function(data){
if(data && data.response){ // (didn't even have to change this for it to work, but I like this condition more than my own one)
console.log('Wow, it works.');
} else {
console.log(data);
}
},'json'); // put the third parameter as json
以下原始问题:
我在Zend Framework 2中第一次尝试jQuery AJAX(我之前从未使用过AJAX)。话虽如此,我在使用JSON时也没有非常丰富的经验,所以请原谅我新手的错误;)
在我的js文件中,我在我的控制器中调用一个函数来返回一个JSON对象。我的问题是,当我将“数据”记录到控制台时,它会记录它的结构,但是当我尝试使用“数据”键时,它们的值会以未定义的形式返回。
这是我调用函数的地方:
$('#loadmore').on('click', function(event){
$.post("monitor/loadEVents", function(data){
if(data.response == true){
console.log('Wow, it works.'); // Want this condition met, but it never is.
} else {
console.log(data); // so it logs data
}
})
});
这是我的控制器内部的功能:
public function loadEventsAction(){
$request = $this->getRequest();
$response = $this->getResponse();
if($request->isPost()){
$events = array('a bunch' => 'of stuff');
$response->setContent(\Zend\Json\Json::encode(array('response' => true, 'events' => $events)));
}
return $response;
}
这是记录数据的方式:
{"response":true,"events":{"a bunch":"of stuff"}}
我该怎么做才能正确查看“数据”中的响应和事件键?
答案 0 :(得分:3)
试试这个,
$.post("monitor/loadEVents", function(data){
if(data && data.response){
console.log('Wow, it works.'); // Want this condition met, but it never is.
} else {
console.log(data); // so it logs data
}
},'json');// put the third parameter as json
阅读post()