【发布时间】:2013-01-07 16:26:05
【问题描述】:
我正在尝试通过使用 URL 和 AJAX 中的变量来显示 JSON 来从网站获取特定请求。似乎一切正常,但出现错误“TypeError:无法读取未定义的属性'长度'”。调试器指向 JQuery 文件和我的脚本中的行 ($.ajax.success)。
function getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
alert('Query Variable ' + variable + ' not found');
}
$(document).ready(function () {
var output = $('#news');
var postid = getQueryVariable('id');
$.ajax({
url: 'http://www.domain.pro/api/get_post/?post_id=' + postid + '&post_type=news',
async: false,
callback: 'callback',
crossDomain: true,
contentType: 'application/json; charset=utf-8',
type: 'POST',
dataType: 'jsonp',
timeout: 5000,
success: function (data, status) {
$.each(data.posts, function (i, item) {
var news = '<div>' + item.title + '</div><div>' + item.content + '</div><hr/>';
output.append(news);
});
},
error: function () {
output.text('There was an error loading the data.');
}
});
})
你能帮我解决这个问题吗?非常感谢您的支持。
【问题讨论】:
-
突出显示哪一行?
-
确认
data是您所期望的。 -
另外,jsonp + POST 没有多大意义。你不能使用
<script src="http://www.cityfacts.pro/api/get_post/?post_id=12341234&post_type=news"></script>POST,这是 jQuery 在内部为 jsonp 请求所做的。 -
拆分前查询变量中有什么?
-
在您的
each函数中,您正在重新声明新闻变量。删除 var 并添加 +。应该是news+=