Ajax怎么传对象

我想用ajax操作 只更新这个div   
这个div 主要就针对“thisTest” 这个对象。
其实就是更新thisTest这个对象。
但是 我看XMLHttprequest只有responseText和responseXML  
就是说 只能接收Text 和Xml 怎么接收对象呢?

<div id = "TestChangDIV">
<div id="TestNameDIV">
<b>
题目:${thisTest.testName }
</b>
</div>


<div id="TestAnswerDIV">
<c:forEach items="${thisTest.answers}" var="answer" varStatus="a">
${a.index+1 } :
 <input type="checkbox" id="${answer.id }"
  name="check${answer.rightOrNot }">
 <span id='span${answer.rightOrNot }'>${answer.answerValue} </span>
 </input>
 <p />
</c:forEach>
</div>
<div id="descriptionDIV">
<table border="1" style="font-size:13px;color:gray">
<tr>
<th>
本题难度
</th>
<th>
做过本题人数
</th>
<th>
做对本题人数
</th>
<th>
本题来源
</th>
<th>
出题老师
</th>
</tr>
<tr>
<td>
${thisTest.difficulty }
</td>
<td>
${thisTest.doneUc }
</td>
<td>
${thisTest.rightUc }
</td>
<td>
<a href="#">
${thisTest.testFrom }
</a>
</td>
<td>
<a href="#">
${thisTest.teacherName }
</a>
</td>
</tr>
</table>
</div>

<div id="answerDIV">
<div id="judgeDIV" style="color:red"></div>
用时:
<span id="timeDIV"></span>

<p />
本题正确答案将以红色字体显示!
<p />
试题详解:${thisTest.testDesc}
</div>
</div>
 
服务器端如果用 response.getWriter().print("nextTest");
这样发过去的就是text 那要怎么发对象呢?
 
<

解决方法


不难,很简单的。其实responseText和responseXML就是显示内容,你可以读取动态页面里的内容,然后再通过responseText输出,赋值给某个标签里的内容。
发个简单的例子给你参考一下:
/*
 *--------------------------------------------------------------------
 *创建一个XMLHttp实例
 *return object 成功创建返回一个xmlhttp对象实例,否则返回false
 *--------------------------------------------------------------------
 */
function CreateAjax()
{
  var xmlhttp;
  try
  {
  //Firefox, Opera 8.0+, Safari
  xmlhttp=new XMLHttpRequest();
  }
  catch(e)
  {
  try
  {
  //IE6.0+
  xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");  
  }  
  catch(e)
  {
  try
  {
  //IE5.5+
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch(e)
  {
  return false;
  }
  }
  }
  return xmlhttp;
}

/*
 *--------------------------------------------------------------------
 *传输数据
 *--------------------------------------------------------------------
 */
/*
function handlestatechange(ListID)
{
  var VoteIDContent=document.getElementById("Vote"+ListID+'');
    
  if(xmlhttp.readyState==4) //客户端完成请求
  {
  if(xmlhttp.status==0 || xmlhttp.status==200) //服务端完成处理并返回数据
  {
  var ResponseText=unescape(xmlhttp.responseText)
  var r=ResponseText.split(",");
  if(r[0]=="Vote")
  {
  alert("每个IP地址每天限投一票,请不要重复投票!");
  VoteIDContent.innerHTML=r[1];
  }
  else
  {
  VoteIDContent.innerHTML=ResponseText;
  alert('您已投票成功!');
  }
  }
  else
  {
  alert("服务器返回异常!");
  top.location.href='index.asp';
  }
  }
  else
  {
  VoteIDContent.innerHTML='<img src="images/Loading.gif">';
  }
  return VoteIDContent.innerHTML;
}
*/

function Vote(ListID)
{
  if(!ListID)
  {
  alert("请不要提交非法数据!");
  return false;
  }
  var Send_Url='Vote.asp?ListID='+ListID+'&n='+Math.random()+'';//这里添加了一个参数n,表示为一个随机数,以避免浏览器缓存
  xmlhttp=CreateAjax();
  xmlhttp.open("get",Send_Url,true);
  
   
  xmlhttp.onreadystatechange=function()
  {
  var VoteIDContent=document.getElementById("Vote"+ListID+'');
    
  if(xmlhttp.readyState==4) //客户端完成请求
  {
  if(xmlhttp.status==0 || xmlhttp.status==200) //服务端完成处理并返回数据
  {
  var ResponseText=unescape(xmlhttp.responseText)
  var r=ResponseText.split(",");
  if(r[0]=="VoteOver")
  {
alert("每个IP地址每天限投一票,请不要重复投票!");
VoteIDContent.innerHTML=r[1];
  }
else if(r[0]=="TimeOver")
{
alert("投票结束!");
  VoteIDContent.innerHTML=r[1];  
}
  else
  {
VoteIDContent.innerHTML=ResponseText;
  alert('您已投票成功!');
  }
  }
  else
  {
  alert("服务器返回异常!");
  top.location.href='index.asp';
  }
  }
  else
  {
  VoteIDContent.innerHTML='<img src="images/Loading.gif">';
  }
  return VoteIDContent.innerHTML;
}
  xmlhttp.send(null);  
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水寒

感谢打赏,您的支持是我最大的动

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值