0

我正在为android制作一个phonegap应用程序。我收到一个 json 字符串并试图解析它。这是一个非常小的数据。 {"result":{ "node":"32"} }

如果显示使用结果的 iam 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 数据 x 但它不起作用。

请建议。

编辑:`function 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 回答