【发布时间】:2011-01-27 21:45:22
【问题描述】:
我有以下代码:
// setup the AJAX request
var pageRequest = false;
if(window.XMLHttpRequest) pageRequest = new XMLHttpRequest();
else if(window.ActiveXObject) pageRequest = new ActiveXObject("Microsoft.XMLHTTP");
// callback
pageRequest.onreadystatechange = function() {
alert('pageRequest.readyState: ' + pageRequest.readyState
+ '\npageRequest.status: ' + pageRequest.status);
}
pageRequest.open('POST','ajax.php',true);
// q_str contains something like 'data=value...'
pageRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
pageRequest.setRequestHeader("Content-length", q_str.length);
pageRequest.setRequestHeader("Connection", "close");
pageRequest.send(q_str);
这在 Chrome 中运行良好,但 IE 卡住它,吐出“未指定的错误”。它指向带有 alert() 的行。为什么不能显示警报?
编辑:好的,在我关闭错误对话框后,我得到了预期的三个警报....
编辑:现在真的越来越奇怪了。如果我改变了
alert('pageRequest.readyState: ' + pageRequest.readyState
+ '\npageRequest.status: ' + pageRequest.status);
到
alert('pageRequest.readyState: ' + pageRequest.readyState);
然后它起作用了,我收到 5 个警报。 (1,1,2,3,4)
【问题讨论】:
-
您确定 pageRequest 的构造正确吗?如果你在本地运行这个 IE 默认拒绝对本地页面使用 ActiveX....
-
我在我的本地网络服务器上运行它。
-
你可以忍受 ;在你的 } 之后。也许这是相关的。
标签: javascript internet-explorer xmlhttprequest alert