0

可能重复:
如何返回 AJAX 响应文本?
如何从函数的 AJAX 调用返回响应?

经过一整天没有解决这个问题。我读到这是不可能的或无法完成等。我确实浏览了所有相关的主题,但找不到解决方案。

所以我认为我的代码中的变量超出了范围,我不能返回它,不能使用它。

.js 文件:

function getXMLHttp()
{
  var xmlHttp

  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
        alert("Your browser does not support AJAX!")
        return false;
      }
    }
  }
return xmlHttp;

}



function MakeRequest()
{
  var xmlHttp = getXMLHttp();

 xmlHttp.onreadystatechange = function(){


   if(xmlHttp.readyState == 4)
    {
      var myvar = new Array();
     myvar=JSON.parse(xmlHttp.responseText);

    return myvar;
    }





} 

   xmlHttp.open("GET", "showimage.php", true);
  xmlHttp.send();



}

所以上面是好的,它在完成时返回php脚本的值。

我想要 html 文件中的这个 myvar 变量。像这样尝试:

 window.onload = function() {
 var myvar = MakeRequest();
 alert (myvar);

} 

它失败了,返回未定义的值。

还尝试将 MakeRequest 函数作为回调函数,然后从 html 中调用它

MakeRequest(function(txt){
});

然后我得到了回应,但可以提醒它。我不想提醒它。我需要将它存储在变量 myvar 中,因为稍后在代码中需要它。

4

0 回答 0