2

我有一个用 Javascript 编写的 100% 有效的 Ajax 模型,其中包含我使用的一些输入,Get 或 Post 方法、要与之通信的页面、要发送到该页面的字符串以及我自己页面上的什么元素我可能会在什么时候摆弄我收到我的回复。问题是,如果我将请求设置为异步(因此是 Ajax),IE 在 onreadystatechange 事件中返回错误“完成此操作所需的数据尚不可用”,我所做的只是检查 readystate 是否为 4 和状态为 200。在 Firefox 或 Chrome 中不会出现错误,因为 Ajax 是异步的。

这是 Post 方法的一个片段

xmlhttp.open("POST", commPage, true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        j = xmlhttp.responseText;
        i.innerHTML = j;
    }
}
xmlhttp.send(str);

编辑:我应该指出,在 IE 中,我使用的是 ActiveX Control -> Msxml2.XMLHTTP 或 Microsoft.XMLHTTP 或先返回 true 的。

4

3 回答 3

1

嗬嗬

在 onreadystatechange 函数之外,我调用了 responsetext 来检查它是否存在,但是如果它还不存在,显然你不能这样做,所以我只需要重组一些东西。一切都很好,但这是导致问题的脚本

ajaxRequest(){
    [...]
}
if(xmlhttp.responseText){
    myFunc();
}
于 2008-12-19T03:34:46.087 回答
0

Once I had that error, and i solve it configuring the timeouts! maybe you could try the same thing!

Cheers

于 2011-04-12T14:27:47.617 回答
-1

不知道这是否是你的情况,但我一直在努力解决这个错误三个小时,直到我发现问题。Web 服务类没有用允许从客户端脚本调用方法的 ScriptService 属性装饰!我不会责怪 IE,因为 IE 对错误非常严格,并且会报告其他浏览器忽略的所有内容。IE 很适合调试。希望这可以帮助。嗯......可能不是你,因为你的帖子现在很老了。

于 2009-10-06T22:25:20.423 回答