xmlRequest.readyState 始终不等于 4

temp_200910 2009-12-17 06:25:14
先贴代码

……………………

if(flag){
callAjax(args);
}else{
return false;
}


var xmlRequest;
function callAjax(args)
{

var url="http://127.0.0.1:8080/index.jsp?arguments="+ args;
if(window.XMLHttpRequest)
{
xmlRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
xmlRequest = new ActiveXObject("Microsoft.XMLHttp");
}

if(xmlRequest)
{
xmlRequest.open("GET",encodeURI(url),true);
xmlRequest.onreadystatechange = callback;
xmlRequest.send(null);
}
}

function callback()
{
if ( xmlRequest.readyState == 4 && xmlRequest.status == 200 ) {

window.location.href="http://www.csdn.net";

}
}

xmlRequest.readyState始终为1,这是什么原因?请各位指教
...全文
121 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
licip 2009-12-18
  • 打赏
  • 举报
回复
对,楼上楼上的正确。
youlei35 2009-12-18
  • 打赏
  • 举报
回复
楼上正解!!!
  • 打赏
  • 举报
回复
应该ie下的缓存问题,而且你编码最好用encodeURIComponent,encodeURI编码的字符不如encodeURIComponent多。而且你怎么连路径也编码了??

具体参考
JS URL编码函数

function callAjax(args) 
{

var url="http://127.0.0.1:8080/index.jsp?arguments="
+ encodeURIComponent(args)//编码要发送的参数,而不是连url一起编码
+"&_dc="+new Date().getTime();//加时间戳防止缓存
if(window.XMLHttpRequest)
{
xmlRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
xmlRequest = new ActiveXObject("Microsoft.XMLHttp");
}

if(xmlRequest)
{
//xmlRequest.open("GET",encodeURI(url),true);
//xmlRequest.open("GET",url,true); //========不需要再编码了
xmlRequest.onreadystatechange = callback;
xmlRequest.send(null);
}
}
happy664618843 2009-12-17
  • 打赏
  • 举报
回复
alert typeof调试 创建xmlhttp多考虑几种浏览器
qqzeng-ip 2009-12-17
  • 打赏
  • 举报
回复
 objxml.open("GET",url,false); //打开
objxml.send(); //发送
retInfo=objxml.responseText; //接收 返回文本字符串

if(objxml.readyState == 1) //初始化
{
document.getElementById("div").innerHTML ="正在加载数据...";
}

if(objxml.readyState == 4) //数据接收完毕
{ ...}
qqzeng-ip 2009-12-17
  • 打赏
  • 举报
回复
if(objxml.readyState == 1) //初始化
说明正在加载中..

52,782

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧