如何从AJAX调用返回JSON数据

时间:2012-03-07 21:00:38

标签: jquery ajax

我有一个从数据库返回的JSON对象。格式正确。我试图通过AJAX调用访问其中的数据。这是我的AJAX。

$.ajax({
        url: '<?php echo site_url('find_representatives/find_rep_by_address/get_coordinates'); ?>', 
        dataType: 'json',
        data: '',
        success: function(data, status, xhr) {
             alert(data);
        },
        error: function(xhr, status, error) {
             alert(status);
        }
});

我有&#39;&#39;在我的数据中,因为我正在寻找所有的数据。我试着把'id&#39;那里(我的JSON对象中有一个ID,但当我这样做时,该功能停止工作。当我提醒数据时,我得到了一个对象,但是我提醒了数据.id。&#39; data.id&#39 ;我得到了未定义。&#39;我做错了什么?这是我的第一个AJAX调用。该URL有效。我查了。

5 个答案:

答案 0 :(得分:6)

data: '{}', 

这会向服务器发送一个空数据对象,并解决发送空数据(根本不包括data)导致问题的一些问题。

我看到的另一件事是没有设置:

contentType: "application/json",

一种直观“调试”数据的简单方法是包含json2.js和do(在成功函数中):

alert(JSON.stringify(data));

答案 1 :(得分:2)

尝试data[0],看看你在警报中得到了什么......在那里,我认为这会对你有所帮助

答案 2 :(得分:1)

没有足够的信息可以正确回答这个问题。

如果您尝试使用'Alert'进行调试,那么您就遇到了麻烦。

假设您正在使用FireBug或Inspector(Chrome,Safari),请尝试'console.log(data)'而不是'alert(data)'。

数据可能是几种东西,通常是一个对象。所以,警告它对你没什么用,除非你先把它变成一个字符串。

您还可以使用网络面板查看通过网络传输的数据,或者您可以使用Fiddler或HTTPScoop之类的内容来确定从服务器返回的内容。

答案 3 :(得分:0)

查看getJSON

$.getJSON(<?php echo site_url('find_representatives/find_rep_by_address/get_coordinates'); ?>, function(data) {
  console.log(data);
});

答案 4 :(得分:0)

此处的data密钥是您要发送给服务器的密钥(如果有):

data: '',

但回调中的data参数是您从服务器收到的:

success: function(data, status, xhr) {
    alert(data);
},
error: function(xhr, status, error) {
    alert(status);
}

使用dataType: 'json'时,您告诉jQuery您希望从服务器返回JSON。那么,您是否从PHP输出有效的JSON(例如,使用json_encode)?如果是这样,您的代码应该有效。