返回[object,object]的Ajax成功函数

时间:2012-09-20 23:56:41

标签: php jquery ajax

我对AJAX调用非常陌生 - 在网上搜索了一些教程,但仍然没有取得成功。

输入字段的分配ID为“idkey”。脚本如下:

$(document).on("keyup.autocomplete", "#idkey", function(){ 
    var query = "q=" + $(this).val();
    $.ajax({
        url: 'api.php',
        type: 'GET',
        data: query,
        dataType: 'json',
        success: function(data) {
            alert(data);
            for (var i=0;i<data.length;i++) {
                content = data[i].IDKey;
                content += "<br>";
                $(content).appendTo("#output");
                // updateListing(data[x]);
            }
        }
    });
});

在服务器端,api.php的输出为:

[{"IDKey":"30000001"},{"IDKey":"30000002"},{"IDKey":"30000004"}]

我不确定为什么alert(data)会返回[object Object], [object Object], [object Object]。任何有关为什么会发生这种情况的线索?

p / s:php文件的标题设置为Content-Type: application/json

5 个答案:

答案 0 :(得分:3)

警告返回[object Object], [object Object], [object Object],因为你有3个javascript对象的数组,对象不能只是作为字符串提醒,你可以使用console.log来查看对象的内容,只需使用{{1而不是console.log并检查浏览器的控制台

答案 1 :(得分:3)

输入alert(JSON.stringify(data));

答案 2 :(得分:1)

alert(data)正在返回三个对象,因为这就是JSON。 J ava s cript O bject 名词的浮选。

它返回一个数组对象,这就是它返回的全部内容,这就是为什么它会以它的方式显示出来。

如果你想看到这样一个数组的结果..每个对象包含什么,那么你需要使用console.log()

console.log(data)

答案 3 :(得分:0)

Sushanth上面说的是什么

    for (var i=0;i<data.length;i++) {
        alert(data[i].IDKey);
    }

如果您使用的是IE,请记住删除或注释掉console.log()方法。 IE非常不喜欢它们。

答案 4 :(得分:0)

您的输出是[object,object],因为您实际上正在返回一个对象数组。为了检索这些对象的内容,您必须遍历每个数组并访问包含的每个单独对象。