【问题标题】:Ajax success function returning [object, object]Ajax 成功函数返回 [object, object]
【发布时间】:2012-09-20 23:56:40
【问题描述】:

我对 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。

【问题讨论】:

    标签: php jquery ajax


    【解决方案1】:

    类型警报(JSON.stringify(数据));

    【讨论】:

      【解决方案2】:

      alert 返回[object Object], [object Object], [object Object],因为您有 3 个 javascript 对象的数组,并且对象不能仅作为字符串警报,您可以使用 console.log 查看对象的内容,只需使用 console.log 而不是 @987654324 @ 并检查浏览器的控制台

      【讨论】:

        【解决方案3】:

        您的 json 响应是一个包含 3 个对象的数组。这就是您将警报视为对象的原因..

        试试alert(data[0].IDKey) .. 它应该给你 30000001

        要查看数据,请尝试 console.log 或将警报放在 for 循环中

        for (var i=0;i<data.length;i++) {
            alert(data[i].IDKey);
         }
        
        $.each(data, function(i, value) {
           console.log('Value of '+ i +' is : ' + value);
        })
        

        【讨论】:

        【解决方案4】:

        alert(data) 返回三个对象,因为这就是 JSON。Javascript Object N 作息。

        它返回一个数组对象,这就是它的全部返回,这就是它显示它的方式的原因。

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

        console.log(data)
        

        【讨论】:

          【解决方案5】:

          苏珊斯上面所说的

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

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-07-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多