Ajax例子错误? - Web 开发 / Ajax
最经我在看一本Ajax基础教程,里面有一个例子:
<%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_pudn8gg9" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script type="text/javascript" language="javascript">
var xmlHttp;
//创建XMLHttpRequest对象
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
function startRequest()
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET","simpleResponse.xml",true);
xmlHttp.send(null);
}
function handleStateChange(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
alert("The server replied width:" + xmlHttp.responseText);
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="button" value="Start Basic Asynchronuos Request" onclick="startRequest()" />
</div>
</form>
</body>
</html>
这是整个Default.aspx文件,运行起来有一个button。
但是单击是却没有效果,
我快速监视onreadystatechange的时候老师说什么未定义。
请高手指点,错误出在什么地方???
[解决办法]
function startRequest()
{
少了个括号
[解决办法]
如果在本地运行(如:C:\ajax\test.htm),那么status属性不管是在”成功”还是”页面未找到”的情况下,都返回的是0,而不是200和404。这个时候如果还用if(xmlHttp.status==200)来判断运行,则会毫无结果。如果要在本地测试,最好写成if(xmlHttp.status== 200 || xmlHttp.status==0)的形式来判断。
[解决办法]
感觉是ie缓存的问题
try
xmlHttp.open("GET","simpleResponse.xml?_dc="+new Date().getTime(),true);//加时间戳
[解决办法]
createXMLHttpRequest()你既然把 创建http 对象封装成函数,那么你这个函数在哪里调用了,你的函数没调用,自然对象不存在。
var xmlHttp = false; try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlHttp = false; } } if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); }
[解决办法]
学习了。楼上说的好像有道理。