我想使用javascript请求xmlhttp来触发java动作 所以我使用以下函数作为函数调用并返回数据,但是不能返回响应,因为我在其他内部函数中写了return语句。
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 :(得分: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);
}
答案 1 :(得分:0)
我不理解你网址中的“.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);