我的jquery ajax json函数出错,不会返回数据

时间:2011-04-19 07:55:45

标签: javascript jquery ajax json

你好我在我的ajax函数上使用json检索数据时出现此错误。它不会返回任何数据。这是我的代码

$.ajax({
  url: "php/getCategory.php?action=getyear",
  cache: false,
  dataType: "json",
  success: function(data){
    $.each(data.items, function(i,item){
        $("#catYear").append('<option value="'+item.id+'">'+item.name+'</option>');
    });
  }
});

当我尝试删除dataType:“json”时,它会传递给成功:function。我认为问题出在我的json上。我也回应了我的getCategory.php的输出,我认为它们没有问题。下面是我的php json_encode的输出。

{items:[{"id":"1","name":"2010"},{"id":"2","name":"2011"}]}

谢谢!

1 个答案:

答案 0 :(得分:1)

来自jquery文档的

重要提示:从jQuery 1.4开始,如果JSON文件包含语法错误,则请求通常会以静默方式失败。出于这个原因,避免频繁手动编辑JSON数据。 JSON是一种数据交换格式,其语法规则比JavaScript的对象文字符号更严格。例如,以JSON表示的所有字符串,无论它们是属性还是值,都必须用双引号括起来。有关JSON格式的详细信息,请参阅http://json.org/

所以jour json字符串中的元素项不是双引号尝试类似的东西:

{"items":[{"id":"1","name":"2010"},{"id":"2","name":"2011"}]}