我对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
。
答案 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)
for (var i=0;i<data.length;i++) {
alert(data[i].IDKey);
}
如果您使用的是IE,请记住删除或注释掉console.log()方法。 IE非常不喜欢它们。
答案 4 :(得分:0)
您的输出是[object,object],因为您实际上正在返回一个对象数组。为了检索这些对象的内容,您必须遍历每个数组并访问包含的每个单独对象。