了解如何从AJAX调用中捕获数据

时间:2017-02-17 05:21:16

标签: javascript html ajax dom

我正在使用AJAX调用从数据库中获取一些数据。

$.ajax({
    url: URL + '/main/noc/html_forms/query.cfm',
    type: 'GET',
    dataType: 'json',
    data: {
        dataset: 'Users'
    },
    async: false,
    timeout: 5000,
    cache: false,
    success: function(data) {            
        var result = data.result;
        console.log(result);
    }
});

我可以从控制台看到数据已成功检索,但我无法将此数据打印到DOM ID元素。即使我执行了document.write(result);,屏幕上显示的文字也是

[object Object],[object Object],[object Object]

同样,数据被成功检索,因为我可以看到它,我无法得到它。

enter image description here

我知道这可能是一个愚蠢的问题,它最终会成为我可以在101课程中学到的东西,但有人可以解释这里发生了什么以及如何获取我的数据吗?

3 个答案:

答案 0 :(得分:1)

在您发布的屏幕截图中,您似乎将AJAX调用的结果作为Array的形式获得。因此,要访问其数据,您可能需要执行类似... document.write(result[0].user_name)

的操作
 $.ajax({
     url: URL + '/main/noc/html_forms/query.cfm',
     type: 'GET',
     dataType: 'json',
     data: {
         dataset: 'Users'
     },
     async: true,
     cache: false,
     success: function(data) {
         var result = data.result;
         for (var i = 0; i < result.length; i++) {
             document.write(result[i].user_name);
         }
         console.log(result);
     }
 });

希望这有帮助。

答案 1 :(得分:1)

您的代码很好但是在成功的情况下它会返回对象数组,那么您必须像这样修改代码

 $.ajax({
url: URL + '/main/noc/html_forms/query.cfm',
type: 'GET',
dataType: 'json',
contentType:'application/json;charset=utf-8',
data: {
    dataset: 'Users'
},
async: false,
timeout: 5000,
cache: false,
success: function(data) {            
   alert(data[0].user_name);
    console.log(result);
}
});

答案 2 :(得分:0)

success: function(data) {     
           $.each(data,function(index,obj)
           {
               console.log('object ' + index);
               $.each(obj,function(key,value)
               {
                   console.log(key + ':' + value);
               });       
           });
    }

您正在从服务器获取一组对象。你无法直接打印出来。您需要遍历此数组以打印值。为此,您可以使用$.each jquery函数首先遍历对象数组,然后再次遍历每个对象的所有键值对。您可以阅读$.each函数here