0

javascript request xmlhttp を使用してJavaアクションをトリガーしたいので、次の関数を関数呼び出しとして使用し、データを返しましたが、応答を返すことができません。そのような他の内部関数にreturnステートメントを記述します。

function loadXMLDoc(action,request)
{
var act = action+".action"+request;
console.log("load action");
var xmlhttp;
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)
    {
        return JSON.parse(xmlhttp.responseText);            

    }
    else{

    }
  };

  xmlhttp.open("GET",act,true);
  xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  xmlhttp.send();

}

呼び出し元関数......

var data = loadXMLDoc("load","?reuqest=request");

return はどこに記述すればよいですか? また、返されたデータにアクセスするにはどうすればよいですか?

4

2 に答える 2

0

コールバックを受け取るようにメソッドを変更します。

function loadXMLDoc(action,request, callback)

loadXMLDocas in にコールバックを渡します

loadXMLDoc("load","?reuqest=request", function(data) {
  console.log(data);
});

あなたの成功でコールバックを呼び出します:

if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
    callback(xmlhttp.responseText);            
}
于 2014-10-22T04:42:32.217 に答える