我有一个 PHP 脚本,它对 DB 进行查询并将结果作为 JSON 数据返回。该文件包含一些 Codeigniter 特定的功能。
该函数接收 id 并将表中的一些数据返回给 JS 代码。
public function get_l($id){
//$id is not empty variable
$this->db->where('id',$id);
$q=$this->db->get('news');
$res = $q->result_array();
$this->output->set_header("HTTP/1.0 200 OK");
$this->output->set_header("HTTP/1.1 200 OK");
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");
$this->output->set_header("Cache-Control: post-check=0, pre-check=0");
$this->output->set_header("Content-Type: application/json; charset=utf-8");
$this->output->set_header("Pragma: no-cache");
$out = json_encode($res);
$this->output->set_output($out);
}
然后我需要使用下一个 JS 代码处理该 JSON:
function getContent(id){
$.post('/admin_ajax/news/get',
{
id: id
},
function(result)
{
alert(result+"\n"+result.length);//this will output [object Object] 1
for (var key in result)
{
alert(key+':'+result[key]); //and this 0:[object Object]
}
alert(result.title); //here we are getting undefined
},
'json'
);
我没有在控制台中收到错误或警告。在萤火虫中,我看到了从服务器返回的内容。
HTTP 标头:
Server nginx/1.1.19
Date Fri, 26 Oct 2012 11:59:12 GMT
Content-Type application/json; charset=utf-8
Content-Length 85
Connection keep-alive
X-Powered-By PHP/5.3.10-1ubuntu3.4
Cache-Control post-check=0, pre-check=0
Pragma no-cache
和回应:
[{"id":"5","title":"test","alias":"test","content":"tes","date":"123","type":"test"}]
JSON:
alias "test"
content "tes"
date "123"
id "5"
title "test"
type "test"
我在这里发现了一个类似的问题,但没有帮助。