0

자바 요청을 xmlhttp로 보내 자바 메서드 을 호출하므로 함수 호출과 데이터 반환으로 다음 함수를 사용했지만 응답 구문을 return 할 수 없습니다. 그런 내부 기능. 데이터를 반환하기 위해 readyonstatechange 함수를 사용하려면 어떻게해야합니까?

function loadXMLDoc(action,request) 
{ 
var act = action+".action"+request; 
console.log("load action"); 
var xmlhttp; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     return JSON.parse(xmlhttp.responseText);    

    } 
    else{ 

    } 
    }; 

    xmlhttp.open("GET",act,true); 
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    xmlhttp.send(); 

} 

호출 기능

......

var data = loadXMLDoc("load","?reuqest=request"); 

어디에서 수익을 작성해야하며 반환 데이터에 액세스 할 수있는 방법?

function loadXMLDoc(action,request, callback) 

loadXMLDoc("load","?reuqest=request", function(data) { 
    console.log(data); 
}); 

에로 loadXMLDoc에 콜백을 전달하고 성공 콜백 전화 :

if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
    callback(xmlhttp.responseText);    
} 
+0

jquery 태그가 있으므로 아약스 호출에 대한 쿼리를 사용하는 것이 좋습니다. 그것은 당신의 삶을 단순화 할 것입니다. – HeadCode

+0

@HeadCode 여기에 $ .ajax()를 사용할 수 있습니까 ??? –

+0

다음과 같은 답변을 추가했습니다. – HeadCode

답변

0
콜백을 위해 방법을 변경

URL에서 ".action"을 이해하지 못하지만 Jquery 응답은 다음과 같을 수 있습니다.

function loadXML(url, cb){ 
    $.get(url, function(data){ 
     cb(data); 
    }); 
} 

function myFunc(data){ 
    alert(data); 
} 

loadXML("http://www.example.com/test.xml", myFunc); 
+0

감사합니다, 그것은 작동합니다 .... 형. –