黑马程序员技术交流社区
标题:
这个ajax写了半天了。就是错。调试了一下午外加一晚上了....
[打印本页]
作者:
赵宇
时间:
2012-9-24 22:45
标题:
这个ajax写了半天了。就是错。调试了一下午外加一晚上了....
本帖最后由 赵宇 于 2012-9-25 08:33 编辑
只有这样输出才能显示ddd 加上if (XmlHttpRequest.readyState == 4 && XmlHttpRequest.status == 200) { 不好使啊
ddd.jpg
(54.83 KB, 下载次数: 20)
下载附件
2012-9-24 22:43 上传
作者:
尤圣回
时间:
2012-9-24 22:50
贵在坚持 改出来了 以后就不会出错了
作者:
杜正华
时间:
2012-9-24 23:18
if (XmlHttpRequest.readyState == 4 && XmlHttpRequest.status == 200) 那就是XmlHttpRequest.readyState == 4 此阶段确认全部数据都已经解析为客户端可用的格式,解析已经完成。值为4表示数据解析完毕,可以通过XMLHttpRequest对象的相应属性取得数据。
XmlHttpRequest.status == 200 表示 - OK 一切正常,对GET和POST请求的应答文档跟在后面。
百度了一下,ajax还是不太懂啊。。。
作者:
明光照
时间:
2012-9-24 23:45
查一下帮助文档,看一下。
status
返回当前请求的http状态码
备注
长整形,此属性只读,返回当前请求的http状态码,此属性仅当数据发送并接收完毕后才可获取。
readyState
返回XMLHTTP请求的当前状态
4表示 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据
建议你分两个if来写。
或者把XmlHttpRequest.status == 200放在前面。因为&&是当前面的条件不满足的时候便认定整个表达示为false.这样当然就会出错
作者:
秦敖
时间:
2012-10-19 13:51
本帖最后由 秦敖 于 2012-10-19 13:52 编辑
ajax代码大致可以分成以下几步完成:(1)创建xmlhttp对象。(2)设置访问参数。(3)绑定状态监听函数。(4)发送请求。
<script type="text/javascript">
var xmlhttp=CreateXmlHttp();//创建xmlhttp对象
var url="test.ashx?m="+Math.random();
xmlhttp.open("POST",url,false);//设置访问参数
xmlhttp.onreadystatechange=StateChange;//绑定状态监听函数
xmlhttp.send();//发送请求
//以下是xmlhttp对象创建函数,在里面可以扩展非IE的创建。
function CreateXmlHttp(){
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");//IE创建方式。
if(xmlhttp){
return xmlhttp;
}
else{
alert("ajax对象创建失败");
}
}
//以下是状态监听函数。readyState代表和服务器通讯状态。
//1:开始发送。2:发送完成。3:读取响应。4:读取完成。
//Status代表服务器端返回的状态代码。200代表读取成功。
//readyState是和服务端通讯状态(读取进行到哪一步),Status是读取完成后
//服务器端返回的状态,所以Status必须在readyState==4也就是读取完成
//之后来获取。所以(xmlhttp.readyState==4&&xmlhttp.Status==200)这
//种写法是没道理的。
function StateChange(){
if(xmlhttp.readyState==4){
if(xmlhttp.Status==200){
alert(xmlhttp.responseText);
}
else{
alert("服务端读取错误!");
}
}
}
</script>
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2