用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5386|回复: 9
收起左侧

[HELP] 关于jquery 1.4 json格式的问题

[复制链接]
发表于 2010-5-2 22:41:05 | 显示全部楼层 |阅读模式
我在CI上用jquery 1.4.2,JS端:
JS复制代码
 
$.post("/mix/getlist", { 'name' : item },
           function(data){
                alert(data.result);
           }, "JSON");
 
复制代码


CI 端:
PHP复制代码
 
function getlist()
{
     $arr = array('result' => $this->input->post('name'));
     echo json_encode($arr);
}
 
复制代码


以上代码很简单了,但是在JS端运行时会出错,提示data.result undefined。改用jquery 1.3.2正常,但1.4以上都不行,看文档说1.4对JSON格式严格,但这个php返回的也是很标准的json代码啊,怎么就是不行呢??? 哪位仁兄可以指点指点!! 被搞得头都大了!!!
发表于 2010-5-3 00:19:58 | 显示全部楼层
用 firebug 看一下输出有什么不同。
发表于 2010-5-3 00:26:05 | 显示全部楼层
去了index.php没?如果没去掉,那post链接不正确
 楼主| 发表于 2010-5-3 09:05:19 | 显示全部楼层
post链接没问题,返回值输出'{"result":"music"}',看上去也没问题,把这段输出直接放在JS脚本里就正常,但通过PHP返回就不行,真是纳闷啊。。。。
发表于 2010-5-13 18:39:19 | 显示全部楼层
在用flexigrid,把jquery 1.4死活不显示记录集,跟了半天,才发现是jquery 1.4对json格式的问题。
发表于 2010-5-13 21:05:05 | 显示全部楼层
看完这段的话,估计就全明白了
Important: As of jQuery 1.4, if the JSON file contains a syntax error, the request will usually fail silently. Avoid frequent hand-editing of JSON data for this reason. JSON is a data-interchange format with syntax rules that are stricter than those of JavaScript's object literal notation. For example, all strings represented in JSON, whether they are properties or values, must be enclosed in double-quotes. For details on the JSON format, see http://json.org/.
在1.4后,不管是键还是值(字符型)都要用双引号。
发表于 2010-5-30 21:41:33 | 显示全部楼层
恩,上次碰到这个问题。
发表于 2010-6-4 08:48:56 | 显示全部楼层
新手,刚接触PHP框架
发表于 2012-2-23 09:44:46 | 显示全部楼层
正在搜集这方面的资料
发表于 2012-2-23 12:00:57 | 显示全部楼层
PHP复制代码
 
function getlist()
{
     $arr = array('result' => $this->input->post('name'));
     header('Content-type: application/json; charset=UTF-8');
     echo json_encode($arr);
}
 
复制代码

这样试试看呢?

本版积分规则