关于status的返回问题

zabcd117 2006-07-26 10:35:48
这个例子是在<AJAX基础教程>中的,可是我实现不了
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Using</title>
<script text="text/javascript">
var xmlHttp;
function creatXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
function startRequest(requestList){
requestType = requestList;
creatXMLHttpRequest();
xmlHttp.onreadystatechange = handlestatechange;
xmlHttp.open("GET", "1.xml", true);
xmlHttp.send(null);
}
function handlestatechange(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
if(requestType == "north")
ListNorthStates();
}
}
}
function ListNorthStates(){
var xmlDoc = xmlHttp.responseXML;
var northNode = xmlDoc.getElementsByTagName('north')[0];
var northStates = northNode.getElementsByTagName("state");
outputList("North States", northStates);
}
function outputList(title, states) {
var out = title;
var currentState = null;
for(var i = 0; i < states.length; i++) {
currentState = states[i];
out = out + "\n- " + currentState.childNodes[0].nodeValue;
}

alert(out);
}
</script>
</head>
<body>
<form action="#">
<input type="button" value="List North States" onclick="startRequest('north')">
</form>
</body>
</html>

1.XML如下
<?xml version="1.0" encoding="GB2312"?>
<states>
<north>
<state>Minnesota</state>
<state>Iowa</state>
<state>North Dakota</state>
</north>
<south>
<state>Texas</state>
<state>Oklahoma</state>
<state>Louisiana</state>
</south>
<east>
<state>New York</state>
<state>North Carolina</state>
<state>Massachusetts</state>
</east>
<west>
<state>California</state>
<state>Oregon</state>
<state>Nevada</state>
</west>
</states>
现在就是点BUTTON没有反应
但是我要把xmlHttp.status == 200改为xmlHttp.status != 200的话可以,但是会显示var northStates = northNode.getElementsByTagName("state");有错误,说"没有返回值或NULL为空",不知道为何
...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
有理想的草根 2007-03-03
  • 打赏
  • 举报
回复
我认为,这种情况绝大多数情况是因为用户在ajax.open时采用了异步调用的方式进行处理,即在服务器未影响时继续执行,因此会造成不能及时获得处理信息,造成ajax.status为空。
解决方案:ajax.open("GET",uri,false),将异步变为false即可。
tianyajinhui 2006-07-26
  • 打赏
  • 举报
回复
xml与html是不是再同一个目录下的,因为返回不是200,那证明返回出错,那你下面也是错误的怎么可能还可以找到tagName呢,xml文件返回都是错误的
zabcd117 2006-07-26
  • 打赏
  • 举报
回复
需要安装什么服务器么?

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧