首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

5个QQ群里没人解决的Ajax小疑点:<ajax基础教程>上的一段代码,

2012-01-29 
5个QQ群里没人解决的Ajax小问题:ajax基础教程上的一段代码,请指教~~!一个静态parseXML.xml文件:?xmlver

5个QQ群里没人解决的Ajax小问题:<ajax基础教程>上的一段代码,请指教~~!
一个静态parseXML.xml文件:
<?xml   version= "1.0 "   encoding= "UTF-8 "?>
<states>
<north>
<state> jilin </state>
<state> heilongjiang </state>
<state> haerbin </state>
</north>
<south>
<state> gz </state>
<state> sz </state>
<state> nn </state>
</south>
<east>
<state> nj </state>
<state> sh </state>
<state> nb </state>
</east>
<west>
<state> qh </state>
<state> wh </state>
<state> kkxl </state>
</west>
</states>

HTML文件里两个Button:
<input   name= "northButton "   type= "button "   value= "显示北部城市 "   onclick= "startRequest( 'north ') "   />
<input   name= "allButton "   type= "button "   value= "显示全部城市 "   onclick= "startRequest( 'all ') "   />

HTML文件里的JS:
<script   type= "text/javascript ">
var   xmlHttp;
var   requestType;

function   createHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new   window.ActiveXObject( "Microsoft.XMLHTTP ");
}
else   if(window.XMLHttpRequest)
{
xmlHttp=new   XMLHttpRequest();
}
}

function   startRequest(requestList)
{
requestType=requestList;

createHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open( "GET ", "parseXML.xml ",true);
xmlHttp.send(null);
}

function   handleStateChange()
{
if(xmlHttp.readystate==4)
{
//本机返回成功时的xmlHttp.status值也为0,所以下一句判断status是否为0
if(xmlHttp.status==200||xmlHttp.status==0)
{
alert(xmlHttp.responseText);
if(requestType== "north ")
{
ListNorthStates();
}
else   if(requestType== "all ")
{
ListAllStates();
}
}
}
}

function   ListNorthStates()
{
var   xmlDoc=xmlHttp.responseXML;
//如果用xmlHttp.responseText,则可以得到正常的XML文件
var   northNode=xmlDoc.getElementsByTagName( "north ")[0];
var   states=northNode.getElementsByTagName( "state ");
alert(states.length);//这里得出的states.length既然是0
var   out= "north   States ";

outPutList(out,states);
}

function   ListAllStates()
{
var   xmlDoc=xmlHttp.responseXML;
var   states=xmlDoc.getElementsByTagName( "state ");
alert(states.length);//这里得出的states.length也是0
var   out= "all   States ";

outPutList(out,states);
}

function   outPutList(title,states)
{
var   out=title;
var   currenState=null;

for(var   i=0;i <   states.length;i++)
{
currenState=states[i];
out=out+ "\n- "+currenState.childNodes[0].nodeValue;
}
alert(out);
}
</script>
------------------------------------------
问题:只要把xmlHttp.open的URL设置为远程的XML文件,访问一切正常...但只要是在本地的xml文件,用getElementsByTagName得出的元素组总是为空...这到底是什么回事...(PS:浏览器为IE)

------解决方案--------------------


没看明白哪里不对!

学习ing。。
[解决办法]
帮你顶
[解决办法]
顶一下~~学习ing
[解决办法]
感觉挺对的阿,难道我没看明白是什么意思,复制过来试了一下好像也是对的阿...
[解决办法]
var xmlDoc=xmlHttp.responseXML;
这行 xmlDoc返回的是 OBJECT 吗
[解决办法]
responseXML 只要异步交互成功肯定返回一个object..
刚才调试了一下...responseXML.documentELement是null 那肯定是没有办法获得结果的..换了几种写法还是这样..这个问题真奇怪啊. 难道不支持本地xml调用?
[解决办法]
问题:只要把xmlHttp.open的URL设置为远程的XML文件,访问一切正常...但只要是在本地的xml文件,用getElementsByTagName得出的元素组总是为空...这到底是什么回事...(PS:浏览器为IE)

-----------------------------------------

请问LZ javascript 能不能访问本地的文件?

热点排行