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スクリプトの戻り値です。

そして、私はこのmyvar変数をhtmlファイルに入れたいと思っています。このように試しました:

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

} 

失敗し、未定義の値を返します。

また、MakeRequest関数をコールバック関数として作成し、次のようにhtmlから呼び出してみました。

MakeRequest(function(txt){
});

それから私は応答を得ました、しかしただそれを警告することができます。私はそれを警告したくありません。後でコードで必要になるため、変数myvarに格納する必要があります。

4

0 に答える 0