我正在为android制作phonegap应用程序。我收到一个json字符串并试图解析它。这是一个非常小的数据。 {"result":{ "node":"32"} }
无法解析json数据
如果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,但它不起作用。
请建议。
编辑:`函数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调用,所以我需要这个函数。我只需要知道如何获取我的调用函数中的响应。 感谢
我猜你的sendPostRequest是一个非阻塞/异步调用。所以当你尝试使用它时,jsonObj的值没有设置。 –
@SimonMacDonald的建议似乎很可能是这种情况。你能告诉我们你的sendPostRequest方法吗? –
@尼克罗斯请检查方法。嗯,我认为我的函数调用后立即执行我的电话线。如果那是西蒙的意思。 – user1900588