无法在AJAX成功中显示JSON结果

时间:2016-04-28 09:29:02

标签: javascript jquery json ajax

我的ajax代码看起来像这样

$.ajax({
    type : "POST",
    dataType : "JSON",
    url : "index.php",
    success : function(data){           
        for(i=0;i<data.length;i++)
        {
            console.log(data[i].1_assigned_accepted);
        }
    }
})

现在console.log(data[i].1_assigned_accepted);给了我错误,即使我的表中有1_assigned_accepted作为列名。 jQuery不考虑 1 _ 。如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

尝试:

console.log(data[i].["1_assigned_accepted"]);

答案 1 :(得分:1)

尝试使用支架形式。

console.log(data[i]['1_assigned_accepted']);

答案 2 :(得分:-1)

修复您的代码:

$.ajax({
    type: "POST",
    dataType: "JSON",
    url: "index.php",
    success: function(data) {
        console.log(data); //test to see if we get something back
        for (var i = 0; i < data.length; i++) {
            console.log(data[i]['1_assigned_accepted']);
        }
    }
});

差异OP和我的分配是i=0; - &gt; var i = 0;并使用括号获取值。

一些注释:

在发帖时,您通常使用data:选项发送数据。 (记得Json.stringify(input))。发布时,您可能需要更多选项:

function postJson(url, data, successCallback, errorCallback) {
  $.ajax({
      url: url,
      type: 'POST',
      data: JSON.stringify(data),
      contentType: 'application/json',
      dataType: 'json',
      success: successCallback,
      error: errorCallback
  });
}

请注意,此处使用了contentTypedataTypedata。在执行post时,您通常需要所有这些。

像这样调用:

var data = { name: 'Rhys' };
postJson(
  'index.php',
   data,
   function(responseData) {
     console.log(responseData);
   },
   function(err) {
     console.error(err);
   }
);

另一点:

您假设您的响应对象是一个数组,您可以使用instanceof进行测试。

我希望这有帮助,

里斯