我正在为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数据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调用,所以我需要这个函数。我只需要知道如何在我的调用函数中取回响应。 感谢
答案 0 :(得分:1)
解决它:创建一个函数作为回调传递给sendPostRequest(url,nurl)方法。仅在ajax调用完成为正确状态后才会调用此回调。回调函数分配之后可以使用的数据。
答案 1 :(得分:0)
你可以使用:
var jsonData = $.parseJSON(stringJson);