javascript - .js 文件中的变量不会保留 AJAX 的值

标签 javascript ajax variables

变量“输出”没有保持其值

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 是异步的。

您的代码中发生的事情是

  1. 设置XMLHttpRequest
  2. 打印输出\\未定义
  3. 异步调用成功
  4. 打印输出\\“Hello World”

要解决此问题,请在成功方法中调用一个打印输出的新方法

关于javascript - .js 文件中的变量不会保留 AJAX 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920373/

相关文章:

javascript - RoR - .js 查看更多按钮(顶部)到查看更少按钮(底部)

javascript - Angular JS 分页

php - Ajax多维表单数据,格式与$_POST相同

java - 在 Spring MVC 中返回 @Async 方法结果并将其返回给 Ajax 客户端 - 继续

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

javascript - Nodejs 中的 Object.assign

javascript - 在 Chrome 扩展程序中在后台执行多个 ajax 请求

javascript - 对远程 tomcat 的 AJAX Post 请求返回 415

php - 将 PHP 变量动态传递给 AJAX JavaScript 函数

python - Python timeit 设置中的局部变量