几个月前我从一个教程中得到了一些代码,我现在正在我的网站上更改和使用。我已经编码了很多,所以不想再走另一条路了。
基本上我需要从数据库中检索所有帖子并动态显示在屏幕上而不刷新页面。现在我有从PHP文件生成的XML - 一切都很好。我被困的地方是读取ajax方面的XML。这是我到目前为止:
function getAllPosts() {
alert('hi');
var count = 0;
var tlu = getUrlVars()["user"]; // tlu stands for time line user
var data = 'user='+tlu;
$.ajax({
url: 'getAllPosts.php',
type: 'POST',
data: data,
success: function(response){
var xml = response.responseXML;
var posts = xml.documentElement.getElementsByTagName("post_item");
for (var i = 0; i < posts.length; i++) {
var id = posts[i].getAttribute("id");
var account_name = posts[i].getAttribute("account_name");
var author = posts[i].getAttribute("author");
var type = posts[i].getAttribute("type");
var data = posts[i].getAttribute("data");
var postdate = posts[i].getAttribute("post_date");
categoryPost(id, account_name, author, type, data, postdate);
}
}
});
}
function categoryPost(id, account_name, author, type, data, pastdate){
if(type === 'write'){
alert("hello");
}
}
它正在运行alert("hi");
测试但不运行其余代码。
我的控制台给了我这个:Uncaught TypeError: Cannot read property 'documentElement' of undefined
如何读取xml中的元素?我看到的每个地方都有XMLHTTP的东西而我没有,所以我很困惑......
先谢谢
答案 0 :(得分:0)
如果您希望获得XML响应,请尝试设置数据类型:'xml'。在$ .ajax参数中。如果你还有问题。使用console.log(响应)记录响应对象以检查实际返回的内容,或者使用Chrome的邮递员扩展。派上用场; - )。