var xmlHttp;
var stateString;
function createXMLHttpRequest(){
if (window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
function sendServer()
{
createXMLHttpRequest();
var url="/SSH/login.do";
xmlHttp.open("post",url,true);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}
function callback(){
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
stateString = xmlHttp.responseTEXT;//服务器返回值,假设返回值为1
alert(stateString );//弹出消息框值为1
}
}
}
function click()
{
sendServer();
alert(stateString);//弹出消息框值为undefined,这为什么得不到值?不明白
}
2条回答 默认 最新
- iteye_17163 2008-09-19 15:08关注
[code="js"]xmlHttp.open("post",url,true); [/code]
最后一个参数为数据是否为异步发送.
若为true,则是异步发送.执行完send()之后,不管数据有没有返回,都执行后面的语句.也就是说收发数据与执行其它javascript语句是同时进行的.而是否接收到数据,则是在readystatechange事件中进行处理.若为false,则是同步发送,执行完send()之后,就会停在send()语句中,直到接收到了响应之后,才会继续执行后面的语句.
所以在第三个值为true,直接执行后面的语句时.send之后数据还未接收到,所以会为undefined.
可以写如下代码测试:[code="js"]
sendServer();
setTimeout(function(){
alert(stateString);
},5000);//延迟五秒之后再alert(),这时就是有数据的;[/code]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料