我有这个监听这个php函数的监听器
public function notification_query(){
$this->sse();
$data['company_id'] = $this->session->userdata('companyId');
$data['chikito']=$this->pm_model->notifications_admin($data);
echo "data: ".json_encode($data['chikito'])."\n\n";
ob_flush();
flush();
sleep(1); }
如果服务器有事件,它将自动传递给客户端脚本函数。
var es = new EventSource("<?php echo base_url(); ?>admin/notification_query");
var listener = function (data)
{
var data = data.data;
//$("#notification").append(data);
$.each(data, function(index, val) {
$("#notification").append(val.details);
});
}
es.addEventListener("message", listener);
现在的问题是,为什么jquery中的$ .each无法从服务器读取数据传递? 它没有打印。我不明白为什么。
顺便说一句,如果我使用$("#notification").append(data);
它将打印通过的数据。
提前感谢那些回答的人。
答案 0 :(得分:1)
JSON.stringify()方法将值转换为JSON。
var data = JSON.stringify(data).data;
JSON.stringify({}); // '{}'
JSON.stringify(true); // 'true'
JSON.stringify("foo"); // '"foo"'
JSON.stringify([1, "false", false]); // '[1,"false",false]'
JSON.stringify({ x: 5 }); // '{"x":5}'
JSON.stringify({x: 5, y: 6}); // '{"x":5,"y":6}' or '{"y":6,"x":5}'