我正在爲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