ajax的奇怪问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 02:25:00
在js中有如下代码
if (xmlhttp.readyState==4){
var resultstr = xmlhttp.responseText;
document.write(resultstr);
}
在大括号里面document.write(resultstr);,能够输出请求返回的数据,但是保留var resultstr = xmlhttp.responseText;不动,在大括号外document.write(resultstr);,就输出了undefined,这是怎么回事?
那我应该怎么写啊?

因为AJAX是异步的
在你输出 resultstr的时候
还尚未获取xmlhttp.responseText
所以是undefined

用简单的js描述下就类似这个

<script type="text/javascript">

var x="x是A";

setTimeout(function(){
x="x是B";
alert(x);
},1000);

alert(x);

</script>

--------------------------------------------

if (xmlhttp.readyState==4){
//你就把要执行的东西放这里
}

你把resultstr设为全局变量就不会有问题了