Android 용 phonegap 앱을 만들고 있습니다. json 문자열을 받고 구문 분석하려고합니다. 아주 작은 데이터입니다. {"result":{ "node":"32"} }
json 데이터를 구문 분석 할 수 없습니다.
는 alert(request.responseText)
결과를 사용 IAM 경우 표시하지만 호출 기능이 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;
}
같은 변수 거기 모으면 I는이 응답을 수집 할 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 메소드를 보여 주시겠습니까? –
@NickRoth 방법을 확인하십시오. 흠, 내 전화가 끝난 직후의 회선이 함수 호출 직후에 실행되고 있다고 생각합니다. 만약 그게 무슨 뜻인지. – user1900588