我有一个json feed我正在使用ajax尝试以列表格式显示数据。我之前从未使用过json feed,因此必须从这些论坛中学到很多东西。
目前数据未定义且不确定原因。现在我知道json feed是跨域的,所以需要jsonp和一个回调函数,而不是url中的一个。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JSONP test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>
<body>
<div id="content"></div>
<script type="text/javascript">
function loadgatewayJSON() {
$.ajaxSetup({
global : true,
dataType: 'jsonp',
jsonp : 'callback',
cache : true,
data: {eventTypeId:1},
ajaxStart: function(){
//$('#content').hasClass('loading');
},
complete: function(){
//$('#content').removeClass('loading');
}
});
$.ajax({
url: '(my url for feed)',
success: function(data, status) {
$('#content').empty();
var numResults = data.length;
alert(data);
for (var i=0;i < numResults;i++) {
$('#content').append("<p>"+data[0].eventCount+"</p>");
};
},
error:function (xhr, ajaxOptions, thrownError){
alert("An error has occured");
alert(xhr.status);
alert(xhr.responseText);
}
});
};
loadgatewayJSON();
</script>
<div id="content"></div>
</body>
</html>
我只是想知道是否有人能够发现我在代码中所做的任何错误,原因是为什么它未定义。我真的只想要一份事件清单。我希望有人能帮到我。
更新
我现在已经开始提取,但很难在json Feed中提取数据。
我需要拉的东西是
“名称” “开始日期” “结束日期” “事件类型”
我认为是:
$('#content').empty();
var data = name.event;
alert(data);
for (var i=0;i < numResults;i++) {
$('#content').append('+data[0].events+');
可悲的是,这一切都显示了+ data [0] .events + load of times
更新
感谢这个问题的修复,遗憾的是似乎没有显示任何东西,所以假设它是我正在使用的措辞。
"status": "success",
"eventCount": 681,
"events": [
{
"baseUrl":
"pageUrl":
"name":
"owner":
"startDate":
"startTime":
"endDate":
"endTime":
这些是Feed ID,可以使用此代码提取信息
success: function(data, status) {
$('#content').empty();
var data = data.name;
alert(data);
for (var i=0;i < data;i++) {
$('#content').append(data[0].events);
};
2个问题中有1个问题已经解决了。今天至少不是浪费。非常感谢你的帮助:))
答案 0 :(得分:0)
你所做的是错的,
$('#content').append('+data[0].events+');
你应该做的
$('#content').append(data[0].events);
'+data[0].events+'
被视为字符串,输出符合预期。