可能重复:
How to return AJAX response Text?
How to return the response from an AJAX call from a function?
整天没有解决这个问题。我读到这不可能或不能完成等等。我确实通过所有相关主题,但无法找到解决方案。
所以我认为代码中的变量超出了范围,我无法返回它,无法使用它。
js file:
function getXMLHttp()
{
var xmlHttp
try
{
//Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
//Internet Explorer
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
alert("Your browser does not support AJAX!")
return false;
}
}
}
return xmlHttp;
}
function MakeRequest()
{
var xmlHttp = getXMLHttp();
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4)
{
var myvar = new Array();
myvar=JSON.parse(xmlHttp.responseText);
return myvar;
}
}
xmlHttp.open("GET", "showimage.php", true);
xmlHttp.send();
}
所以上面就可以了,它完成时它的PHP脚本的返回值。
我想在html文件中使用myvar变量。试过这样:
window.onload = function() {
var myvar = MakeRequest();
alert (myvar);
}
失败,返回未定义的值。
尝试将MakeRequest函数作为回调函数,然后从html调用它,如
MakeRequest(function(txt){
});
然后我得到了回应,但可以提醒它。我不想提醒它。我需要它存储在变量myvar中,因为它稍后需要在代码中。