Ajax得到xml中的数据永远的object
我是想用Ajax来模拟一下百度的自动提示的功能,有两个页面一个是请求页 一个是返回xml文件的页 但是用请求页返回的时侯总是object 不知道怎么回事啊
另外一个页面是这样的
大家帮我啊~~跪求~~
<%@page contentType="text/html;charset=gbk"%>
<%@page import ="org.dom4j.*"%>
<head>
<title>测试代码</title>
<!--这里是Ajax的地方-->
<script type="text/javascript">
var xmlHttp;
var completeDiv;
var inputField;
var nameTable;
var nameTableBody;
var inputField;
function createXMLHttpRequest(){//创建xmlhttp
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
function initVars(){//初始化成员变量
inputField=document.getElementById("names");
nameTable=document.getElementById("name_table");
completeDiv=document.getElementById("popup");
nameTableBody=document.getElementById("name_table_body");
}
function findNames(){//发送请求
initVars();
if(inputField.value.length>0){
createXMLHttpRequest();
var url="test12.jsp?names="+escape(inputField.value);
xmlHttp.open("get",url,true);
xmlHttp.onreadystatechange=callback;xmlHttp.send(null);
}
else{
clearNames();
}
}
function clearNames(){//清除信息
var ind=nameTableBody.childNodes.length;
for(var i=ind-1;i>=0;i--){
nameTableBody.removeChild(nameTableBody.childNodes[i]);
}
completeDiv.style.border="none";
}
function callback(){
if(xmlHttp.readyState==4)
if(xmlHttp.status==200){
var name=xmlHttp.responseXML.getElementsByTagName("name");
//var name=xmlHttp.responseText;
alert(name);
setNames(name);
}else if(xmlHttp.status==204){
clearNames();
}
}
function setNames(the_names)
{
clearNames();
var size=the_names.length;
setOffsets();
var row,cell,txtNode;
for(var i=0;i<size&&i<10;i++){//如果超过十条记录只显示十条
var nextNode=the_names[i].firstChild.data;
row=document.createElement("tr");
cell=document.createElement("td");
cell.onmouseout=function(){this.className='mouseOver';};
cell.onmouseover=function(){this.className='mouseOut';};
cell.setAttribute("bgcolor","#fffafa");
cell.setAttribute("border","0");
cell.onclick=function(){
populateName(this);
}
txtNode=document.createTextNode(nextNode);
cell.appendChild(txtNode);
row.appendChild(cell);
nameTableBody.appendChild(row);
}
alert(nameTableBody);
}
function setOffsets(){
var end=inputField.offsetWidth;
var left=calculateOffsetLeft(inputField);
var top=calculateOffsetTop(inputField)+inputField.offsetHeight;
completeDiv.style.border="black 1px solid";
completeDiv.style.left=left+"px";
completeDiv.style.top=top+"px";
nameTable.style.width=end+"px";
}
function calculateOffsetLeft(field){
return calculateOffset(field,"offsetLeft");
}
function calculateOffsetTop(field){
return calculateOffset(field,"offsetTop");
}
function calculateOffset(field,attr){
var offset=0;
while(field){
offset+=field[attr];
field=field.offsetParent;
}
return offset;
}
function populateName(cell){
inputField.value=cell.firstChild.nodeValue;
clearNames();
}
</script>
<!--这里是css代码-->
<style text/css>
.mouseOut{
background:#708090;
color:#fffafa;
}
.mouseOver{
background:#fffafa;
coor:#000000;
}
</style>
</head>
<body>
<h1>Ajax自动提示功能</h1>
名称:<input type="text" size="20" id="names" onkeyup="findNames();" style="height:20" />
<div style="position:absolute" id="popup">
<table id="name_table" bgcolor="#fffafa" border="0" cellpadding="0">
<tbody id="name_table_body"></tbody>
</div>
</body>另外一个页面是这样的
<%
response.setHeader("content-Type","text/xml");
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", -10);
%>
<html>
<head>
<title>测试页面</title>
</head>
<body>
<%
//String name=request.getParameter("names");
String name="a";
if(name.equals("a")){
String data="<response><name>abc</name><name>ajax</name><name>apple</name><name>an</name></response>";
out.println(data);
}
else if(name.equals('j'))
{
String data="<response><name>java</name><name>jsp</name><name>javascript</name><name>jar</name></response>";
out.println(data);
}
%>
</body>
</html>
大家帮我啊~~跪求~~
...全文
相关推荐
ajax返回object Object的快速解决方法
下面小编就为大家带来一篇ajax返回object Object的快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
javascript解析ajax返回的xml和json格式数据实例详解
主要介绍了javascript解析ajax返回的xml和json格式数据,结合实例形式详细分析了JS ajax调用及返回值中xml与json格式数据的处理技巧,需要的朋友可以参考下
Ajax_xml数据格式
NULL 博文链接:https://490276559.iteye.com/blog/373018
Ajax如何传输Json和xml数据
ajax传输xml数据:只要把数据封装成xml格式就可以实现传输,前台js用responseXML接收xml参数,后台读取用流和dom4j来解析 前台页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Ajax
如何使用ajax读取Json中的数据
主要介绍了如何使用ajax读取Json中的数据,如何使用AJAX读取Json数组里面的数据,感兴趣的小伙伴们可以参考一下


