变量“输出”没有保持其值
function send()
{
var output;
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
output = xmlhttp.responseText;
此输出显示“hello world”
alert(output);
}
}
xmlhttp.open("GET",'mp.php',true);
xmlhttp.send();
此输出显示“未定义”:
alert(output);
return output
}
在浏览器中导航到 mp.php 的内容时会显示“Hello world”
如何使输出变量在返回时不为“未定义”?
最佳答案
JavaScript 是异步的。
您的代码中发生的事情是
- 设置
XMLHttpRequest
- 打印
输出
\\未定义 - 异步调用成功
- 打印
输出
\\“Hello World”
要解决此问题,请在成功方法中调用一个打印输出的新方法
关于javascript - .js 文件中的变量不会保留 AJAX 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920373/