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,这是怎么回事?
那我应该怎么写啊?
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设为全局变量就不会有问题了