这是我从XML页面获取数据的XMLHttpRequest代码。当我在“if”中警告变量user_data时,它可以工作。但是在所有这些代码之下,变量不再存在。
感谢您的帮助!
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
user_data = xmlhttp.responseText;
alert (user_data); //THIS WORKS
}
}
xmlhttp.open("GET","http://myurl.com/index.php",true);
xmlhttp.send();
alert (user_data); //THIS DOESN'T WORK
答案 0 :(得分:5)
这是一个异步请求。在请求返回之前执行非工作警报。在请求完成之前,不会分配变量。
答案 1 :(得分:0)
它已超出范围
var user_data = null;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
user_data = xmlhttp.responseText;
alert (user_data); //THIS WORKS
}
}
xmlhttp.open("GET","http://myurl.com/index.php",true);
xmlhttp.send();
再次引用时,不要忘记将其检查为空。
答案 2 :(得分:0)
xmlhttp.send();
您的控件会启动您的请求执行,然后在响应此请求后立即移至onreadystatechange=function()
阻止。