2 u011086358 u011086358 于 2013.07.30 11:16 提问

ajax无刷新(添加评论功能)

JSp,我 用ajax无刷新写了一个添加评论的功能,但是JS脚本这边解析servlet端构造的xml文档老是报错,代码如下:
(当解析“item”根节点就报错了-“不支持该属性或方法”,如果有其它的错误,请指出,该如何解决,谢谢!)
servlet:

StringBuffer sb=new StringBuffer();
sb.append("");
sb.append(""+counts+"");
for (int i = 0; i Comments c=coms.get(i);
sb.append("");

sb.append(""+c.getU().getUname()+"");
sb.append(""+c.getU().getPic()+"");
sb.append(""+c.getCdate()+"");
sb.append(""+c.getCcontent()+"");
sb.append("");
}
sb.append("");
out.print(sb.toString());

js:脚本

var xml=xmlhttp.responseText;
if(xml){
var node=xml.getElementsByTagName("item");
var cElement=node.getElementsByTagName("counts").nodeValue;
document.getElementById("plc").innerHTML="评论("+cElement+")";
//分别存放想要的数据
var uname;
var pic;
var cdate;
var ccontent;
//便利节点
for ( var i = 0; i < cElement; i++) {
var c=node.getElementsByTagName("c"+i+"");
uname[i]=c[0].firstChild.nodeValue;
pic[i]=c[1].firstChild.nodeValue;
cdate[i]=c[2].firstChild.nodeValue;
ccontent[i]=c[3].firstChild.nodeValue;
var divElement=document.getElementById("doWusx");
divElement.innerHTML=" " +
"" +
"" +
"" +
"来自 : "+uname[i]+"
日期 : "+cdate[i]+"" +
""+
""+
"内容:"+ccontent[i]+" "+
"
"+
""+
"
"+
"";
}
当解析“item”根节点就报错了-“不支持该属性或方法”,如果有其它的错误,请指出,该如何解决,谢谢!

1个回答

u010618015
u010618015   2013.07.30 11:25
已采纳

应该是这句
var xml=xmlhttp.responseText;
if(xml){
var node=xml.getElementsByTagName("item");

本来你返回的是responseText类型,据我所知是字符串,当然没有getElementsByTagName()方法
应该返回responseXML对象才对

u010618015
u010618015 你使用Ajax的时候不是需要请求的类型吗? 我记得请求到servlet的时候要设置编码和格式的 要将它设置为XML 具体我也忘了
接近 5 年之前 回复
u011086358
u011086358 我已经改为responseXML,根节点可以获得对象,但是子节点无法获得对象和值,servlet构造的xml有误吗? 怎么获得xmll节点的值?
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
AJAX实现页面无刷新发表评论(post请求,服务器端使用php)
AJAX实现页面无刷新发表评论(post请求,服务器端使用php)
Ajax无刷新添加评论(JQuery版)
用户点击提交按钮后通过Ajax提交参数给服务器,服务器添加进数据库后返回添加结果,页面根据服务器返回的结果判断,如果添加成功了,就把内容更新到页面上(append()方法). 对于用户来说,整个过程是无刷新的,不会打断用户操作.
Ajax实现页面无刷新发表评论 for Php
大家都有在网站发表评论的经历,传统的发表过程无非是:发表->提交页面表单->等待刷新页面,这样在网络比较拥挤的时候,往往需要漫长的等待,今天介绍用PHP+Ajax实现页面无刷新发表评论,希望对初学ajax的PHPer有所帮助。    那么首先,我们需要一个基本的ajax开发框架,文件ajax.js就包含了这个框架,代码如下var http_request=false;   function
用jquery写一个无刷新评论功能
//========================================================设定样式 $(function () { var isFirst = true; $("#text1").css("color", "grey").focus(function () {
jquery+ajax实现无刷新提交的功能
                                          $(document).ready(function(){         //DOM的onload事件处理函数          $("#button").click(function(){           //当按钮button被点击时的处理函数            postdata();        
PHP Ajax实现页面无刷新发表评论
来源:http://www.phpwind.net/read-htm-tid-371152.html 传统的发表过程无非是:发表->提交页面表单->等待刷新页面,这样在网络比较拥挤的时候,往往需要漫长的等待,今天介绍用PHP+Ajax 实现页面无刷新发表评论,希望对初学ajax的PHPer有所帮助。  那么首先,我们需要一个基本的ajax开发框架,文件ajax.js就包含了这个框架,代码如下
Thinkphp ajax实现评论回复
这个是控制器代码 <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $num = M('comment')->count(); //获取评论总数 $this-
ajax无刷新加载原理
ajax (ajax开发) AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。 AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实
Jquery局部刷新--多用于评论回复等
1---- 首先导入json jar包 javascript部分:                 $(function(){         $("#button").click(function(){//点击事件       //把数据提交,实际是通过ajax的方式去提交数据到服务器       var sdata =$("#from1").serialize();
jq.ajax+php+mysql数据库实现用户无刷新评论
最终效果图: html+css代码 *{margin:0;padding:0;} .box{width:600px;height:300;margin:50px auto;} .box p{width:600px;height:40px;border-bottom:1px solid #999;} .box p b{width:80px;height:40px;line-heig