在IE,ajax中的readyState3狀態下,如何取responseText的值呢?

在IE,ajax中的readyState3狀態下,如何取responseText的值呢?

问题描述:

請問,在IE,ajax中的readyState3狀態下,如何取responseText的值呢?
readyState3狀態時,在FF、chrome可以正常取responseText的值
可是IE跟opera就取不到值了
可以給點提示如何令IE也可以在readyState3取responseText嗎?
謝謝
[b]问题补充:[/b]
那...opera可以在3狀態時取responseTEXT嗎?
[b]问题补充:[/b]
[size=x-large]那...opera可以在3狀態時取responseTEXT嗎?[/size]
為免大家看不到,所以我加大了字形 :oops:
[b]问题补充:[/b]
[size=large]是的,我已經測試過,FF跟chrome可以在3狀態時取resopenseTEXT的值[/size]
[b]问题补充:[/b]
[size=x-large]不行 目標頁面包含一個死循環,每一秒顯示出一埋數字,所以ajax只能到達3狀態 :cry: [/size]
[b]问题补充:[/b]
[size=x-large]其實我在寫一個實時聊天室
聊天室頁面利用ajax連結到另一個頁面
該頁面內包含了一個死循環,每1秒檢查有沒有新留言,因為是死循環,頁面不會有載入完成的一天 :? 所以ajax只能到達3狀態
IE已經解決了,但唯獨opera還不能解決
這下想到頭也大了[/size]

。。。。这个时候还没取到值呢。。。

0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了

你确定在FF和Chrome下能从3中取到值???
我取值都是在状态为4后,开始取值。

不用麻烦了吧,去4里面取吧,肯定可以成功的。

[quote]不行 目標頁面包含一個死循環,每一秒顯示出一埋數字,所以ajax只能到達3狀態[/quote]
只能说,4状态是非常肯定可以实现相似功能的。
全部取出再慢慢显示不得了。

为了稳定和安全的保证,还是从发送状态4当中取回服务器结果吧,因为4的话肯定数据已经发送到服务器处理了,至于服务器处理结果如何再在、再在里面判断了,不知道LZ你为什么一定要在3里面取数据呢。。。

类似下面这样的处理就可以了的:
[code="java"]//回调函数,处理来自服务器的返回值
function mycallback(){
//状态为4表示已经成功的把信息发送到服务器
if(xmlHttp.readyState == 4){
//status表示服务器的执行结果
//如果是404就意味着找不到servlet
//如果是405就表示urlpattern写错了
//如果是500就表示程序处理错误
//如果是200就表示程序处理成功
//只有程序处理成功那么才有必要去
//取值
if(xmlHttp.status == 200){
//取出来自服务端的结果
res = xmlHttp.responseText;
if(res == "true"){
document.getElementById("msg").innerHTML = "该用户名可以被注册!";
document.getElementById("btn").disabled = false;
}else{
document.getElementById("msg").innerHTML = "该用户已经存在了,请选择其他名字";
document.getElementById("btn").disabled = true;
}
}
}
}[/code]

请问LZ在chrome,FF,IE中怎么解决的啊
我测试了在3的时候可以把responseText给alert出来,但是却不能显示在页面上
求指教啊