为什么取xmlHttp.responseXML.documentElement取为空?
为什么取xmlHttp.responseXML.documentElement取为空? - Web 开发 / Ajax
要求,在asp页面中输入工号项中输入工号,自动在该页面中显示该工号的相关数据,比如对应的姓名,电话等.
想到用Ajax 实现,代码如下:
a.asp页面,该部分HTML代码省略.
showpersonalinfo.js页面
getpersonalinfo.asp页面
问题:如上代码蓝色行,xmlHttp.responseXML.documentElement返回的值这空,用alert输出xmlHttp.responsetext有值返回,alert输出xmlHttp.responseXML为[object],不知道这是什么原因,返回xmlHttp.responseXML.documentElement的值为NULL?
要求,在asp页面中输入工号项中输入工号,自动在该页面中显示该工号的相关数据,比如对应的姓名,电话等.
想到用Ajax 实现,代码如下:
a.asp页面,该部分HTML代码省略.
- VBScript code
..... <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="course_style.css" rel="stylesheet" type="text/css"> <script src="showpersonalinfo.js"></script> .... <form name="form" method="post" action="sendproc.asp" onSubmit="return chkform();"> ... <td ><input type="text" name="worknum" id="worknum" onKeyUp="showpersonalinfo(this.value)"><td> <td><input type="text" name="name" id="name"></td> <td><input name="extension" type="text" id="extension"></td> .... </form>
showpersonalinfo.js页面
- JScript code
var xmlHttp; function showpersonalinfo(str) { xmlHttp=GetXmlHttpObject(); if(xmlHttp==null) { alert ("Your browser does not support AJAX!"); return; } var url="getpersonalinfo.asp" url=url+"?worknum="+str; url=url+"&sid="+Math.random(); xmlHttp.onreadystatechange=statechanged; xmlHttp.open("get",url,null); xmlHttp.send(null); } function statechanged() { if(xmlHttp.readystate==4) { [color=#0000FF]var xmlDoc=xmlHttp.responseXML.documentElement;[/color] document.getelementByid("name").innerHtml=xmlDoc.getelementsBytagname("name")[0].childnodes[0].nodevalue; document.getelementByid("extension").innerHtml=xmlDoc.getelementsBytagname("extension")[0].childnodes[0].nodevalue; } } function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }
getpersonalinfo.asp页面
- VBScript code
<% response.Expires=-1 response.contenttype="text/xml" response.Charset="utf-8" %> <!--#included file="inc/conn.asp"--> <!--#included file="inc/function.asp"--> <% dim worknum dim rs,sql worknum=trim(request.QueryString("worknum")) set rs=server.CreateObject("adodb.recordset") sql="select * from employee where wcode='"&worknum&"'" rs.open sql,conn,1,3 if not(rs.bof and rs.eof) then response.write("<?xml version='1.0' encoding='utf-8'?>") response.write("<personalinfo>") response.write("<name>"&rs("name")&"</name>") response.write("<division>"&rs("div")&"</division>") response.write("<dept>"&rs("dept")&"</dept>") response.write("<extension>"&rs("extension")&"</extension>") response.write("<email>"&rs("email")&"</email>") response.write("</personalinfo>") end if rs.close set rs=nothing %>
问题:如上代码蓝色行,xmlHttp.responseXML.documentElement返回的值这空,用alert输出xmlHttp.responsetext有值返回,alert输出xmlHttp.responseXML为[object],不知道这是什么原因,返回xmlHttp.responseXML.documentElement的值为NULL?