I want to use javascript request xmlhttp to trigger java action so I used the following function as function call and return data, but can't return response cause I write return statement in other inner function like that.
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();
}
caller function......
var data = loadXMLDoc("load","?reuqest=request");
where should I write return and how could I access returned data ?
Change your method to take a callback:
function loadXMLDoc(action,request, callback)
Pass a callback to your loadXMLDoc
as in
loadXMLDoc("load","?reuqest=request", function(data) {
console.log(data);
});
and call the callback in your success:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
callback(xmlhttp.responseText);
}