0

Android用のphonegapアプリを作成しています。json 文字列を受け取り、それを解析しようとしています。とても小さなデータです。 {"result":{ "node":"32"} }

結果を使用しalert(request.responseText)
ている場合は表示されますが、この request.responseText を呼び出し元の関数に返し、次のような変数に収集するとvar x= somefunction(); x contains undefined.

var jsonObj = sendPostRequest(url,nurl);
  console.log(jsonObj+""); // GIVES UNDEFINED HERE AT THIS LINE BUT SAME STATEMENT WORKS IN sendPostRequest()
  if(jsonObj){
    var Json = JSON.parse(jsonObj);
    console.log(json);
    document.getElementById("gnodei").innerHTML= json.result.wEventId;
  }

somefunction() 内の変数 y でこの応答を収集できますが、このデータを呼び出し元の関数に返すと、そこには何も到達しません。上記のjson data x をそのすぐ下に使用していますが、機能しません。

提案してください。

編集: `関数 sendPostRequest(url,nurl){

var request = new XMLHttpRequest();
request.onreadystatechange = function() {
       if (request.readyState == 4) {
        if (request.status == 200 || request.status == 0){
           console.log(request.status);
           //alert(request.responseText);
           var txt= request.responseText;
           console.log(txt);
           return txt;
          }
        }
      }

request.open("POST",url, true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send(nurl);

}`

ajax 呼び出し。また、url と nurl の値を準備した後にこの ajax 呼び出しを呼び出す関数が複数あるため、この関数がそのまま必要です。呼び出し関数で応答を返す方法を知る必要があるだけです。ありがとう

4

2 に答える 2

1

解決済み: sendPostRequest(url,nurl) メソッドにコールバックとして渡す関数を作成しました。このコールバックは、ajax 呼び出しが正しいステータスとして終了した後にのみ呼び出されます。コールバック関数は、その後使用できるデータを割り当てます。

于 2013-01-08T16:13:25.867 に答える
0

あなたが使用することができます:

var jsonData = $.parseJSON(stringJson);
于 2013-01-08T07:19:45.293 に答える