无效' in'在操作数a

时间:2014-06-10 11:07:55

标签: jquery ajax

我使用jquery $.ajax将请求发送到服务器,并返回JSON。

$.ajax({
  url: 'moreMonth.ajax',
  data: { startIndex: id },
  success: function(data) {
    $.each(data, function(k, v) {
      alert(k + ':' + v); 
    });
  }
});

但我有错误

  

操作数a中的'in'无效

据我所知 - 这是success阻止的问题吗?

日志:

"[
  {"name":"Advanced Complexity Theory.rar","size":672398,"present":true,"display":false,"publisherId":1,"downloadDate":"Jun 9, 2014 11:05:28 AM","id":11},
  {"name":"Algorithms and Complexity, Internet Edition.rar","size":971299,"present":true,"display":false,"publisherId":1,"downloadDate":"Jun 9, 2014 11:05:28 AM","id":12}
]"

2 个答案:

答案 0 :(得分:19)

您正在尝试迭代字符串,这会导致此错误

变量data是字符串,尝试将其转换为数组。

尝试使用$.parseJSON(data)

    $.ajax({
               url: 'moreMonth.ajax',
               data: { startIndex: id },
               success: function(data) {
                   data = $.parseJSON(data);
                   $.each(data, function(k, v) {
                      alert(k + ':' + v); 
                   });
               }

});

答案 1 :(得分:1)

首先将数据作为json对象,然后解析它。

使用jQuery.parseJSON(将字符串转换为json对象

$.ajax({
    url: 'moreMonth.ajax',
    data: {
        startIndex: id
    },
    success: function (data) {
        data = jQuery.parseJSON(data);
        $.each(data, function (k, v) {
            alert(k + ':' + v);
        });
    }
});