我想用ajax从我网站的其他页面加载json信息。这是我到目前为止所拥有的
$(function() {
$('#show-more').bind('click', function() {
$.ajax({
url: 'http://localhost:3000/users/10',
dataType: 'json',
success: function(data) {
alert(data);
}
});
});
})
当我这样做时,警报弹出,我得到[OBJECT OBJECT] [OBJECT OBJECT]
。如何获取此数据并将其附加到页面上的Feed标识中。我尝试用alert(data)
代替
$('#feed').append(data);
但是我在我的控制台中收到此错误“fragment.appendChild(ret [i]);”。我怎样才能做到我想要的呢?
此外,我正在检索我正在尝试访问的标题消息的数据中有一个字段。我怎么能访问它?我会做像data.message这样的事情吗?
提前致谢!
答案 0 :(得分:3)
警报显示您有一个对象的事实很棒。 JSON是JavaScript Object Notation,因此,您应该期望在success方法中接收对象作为数据。
根据类型,您可以通过不同方式访问数据。您将无法将其直接“追加”到另一个元素,因为它不是HTML。因此,如果JSON是单个对象,您可以这样做:
alert(data.id)
其中“id”是对象的一个属性的名称。或者,如果数据是对象数组,则可以执行以下操作:
$.each(data, function()
{
alert(this.id);
});
无论何种类型,您都必须手动创建HTML。
答案 1 :(得分:1)
数据是javascript对象。它上面可能包含您正在寻找的数据。如果data.message = "foo"
,那么执行alert(data.message)
将输出“foo”;
如果要查看数据属性,可以执行以下操作之一:
1)在包含alert(data);
的行上放置断点在chrome的Javascript控制台或Firefox的Firebug扩展中,您可以在一行上放置一个断点并查看所有变量的值。
2)你可以遍历它:
var str = "";
for(var prop in data){
str += prop + ": " + data[prop] + "\n";
}
alert(str);
这将显示数据的所有属性。其中一些属性也可能是对象,在这种情况下,您还必须遍历这些属性。
答案 2 :(得分:0)
使用它可以让您快速了解正在发生的事情:
<?php
echo json_encode(array('test' => 'This is a test'));
?>
然后在你的jquery更改警报(数据)中,发送警报(data.test)。这应该让你开始 - 或者至少作为一个样本来建立。祝你好运!