Javascript XMLHttpRequest结果不会存储在变量中供其他用途

时间:2012-07-24 16:22:23

标签: php javascript function variables global-variables

我正在提交表单但需要我的表单先运行一些检查,所以我调用了一些需要运行XMLHttpRequest的javascript来查看是否在其他PHP脚本上设置了某些内容。我可以返回值,但只在我得到响应的区域内输出消息,任何将其放入变量并在其他地方使用的尝试都不起作用,这是我的脚本:

function validateform() {

var complete = "Please fill in the following fields:";
var temp;

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)
    {

    temp=xmlhttp.responseText;
     alert(temp);
    }
  }


xmlhttp.open("GET","hrp/recaptcha/verify.php",true);
xmlhttp.send();

alert(temp);

第一个“alert(temp”)被输出但是在代码结尾之后的那个总是说未定义,所以我不能在外面使用它。

有什么想法吗? 谢谢:D

1 个答案:

答案 0 :(得分:1)

您似乎不希望进行异步调用,在这种情况下您需要执行以下操作:

xmlhttp.open("GET","hrp/recaptcha/verify.php",false);

您也可以删除该块:

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {