0

Я хочу использовать javascript-запрос xmlhttp для запуска java-действия , поэтому я использовал следующую функцию как функцию вызова и возврата данных, но не могу вернуть ответ, потому что я пишу оператор возврата в другом внутренняя функция как это.как использовать функцию 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"); 

, где я должен написать декларацию и как я могу получить доступ возвращаемых данных?

+0

Поскольку у вас есть ярлык jquery, я бы предложил изучить запрос для вашего вызова ajax. Это упростит вашу жизнь. – HeadCode

+0

@HeadCode Могу ли я использовать $ .ajax() для этого ??? –

+0

Я добавил еще один ответ ниже, если вы хотите взглянуть. – HeadCode

ответ

0

Изменить способ взять функцию обратного вызова:

function loadXMLDoc(action,request, callback) 

Сквозное обратный вызов к вашему loadXMLDoc как в

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

и вызвать функцию обратного вызова в вашем успехе:

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

спасибо, это работает .... брата. –

0

I не понимаю «.action» в вашем URL-адресе, но ответ JQuery может выглядеть так:

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

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

loadXML("http://www.example.com/test.xml", myFunc); 
Смежные вопросы