日期:2014-05-18  浏览次数:20516 次

Ajax : 按钮要点击两次,才能正确显示
我在一个按钮下,使用最基本的Ajax代码,但第一点击,显示“undefined”, 
第二次点击,就能正常显示。每次都这样,该怎样处理!

------解决方案--------------------
code...
------解决方案--------------------
贴出代码来!!
------解决方案--------------------
楼上说的正确,把代码贴出来看看吧


------解决方案--------------------
xmlHttp.open("GET", "?ID="+id,true); 
这句有错误吧,没有处理的页面啊
------解决方案--------------------
把 function popup(id) 

startRequest(id); 
//document.all("dek").innerHTML=content; 
// skn.visibility="visible" 

中的
document.all("dek").innerHTML=content; 
skn.visibility="visible" 

放到
if(xmlHttp.status == 200) 
 { 
content=xmlHttp.responseText;
document.all("dek").innerHTML=content; 
skn.visibility="visible"
 } 

------解决方案--------------------
XmlHttp.readyState属性
0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法) 
1 (初始化) 对象已建立,尚未调用send方法 
2 (发送数据) send方法已调用,但是当前的状态及http头未知 
3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误, 
4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据

因为 xmlHttp.send(null)后,这时readyState为2,Reoponse还没有返回,但是你的程序send后已经调用popup(id) ,这时content是空,所以是undefinded; 然后等Reoponse返回后,contenty已经赋值了,但是这时也不再调用popup(id)了。所以就如你所看到的,第一次点没有反映,第二次才能看见。