我有一个从数据库返回的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有效。我查了。
答案 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
)?如果是这样,您的代码应该有效。