从ajax调用返回值到javascript

时间:2012-02-14 03:01:42

标签: javascript ajax asp.net-ajax

我正在调用ajax从asp页面获取值并返回调用javascript,代码如下所示

function getNameFromSession()
{
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
        alert ("Your browser does not support AJAX");
        return;
    }
    var url="getImageName.asp";
    url=url+"?fetch_name=1";
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null); 
    xmlhttp.onreadystatechange=function(){

        if (xmlhttp.readyState==4)
        {
           alert(xmlhttp.responseText);
           return xmlhttp.responseText;

        }

    }
}

函数中的

警告显示正确的值,但javascript未定义为值,任何人都可以告诉我如何将此ajax的值返回到javascript调用函数

4 个答案:

答案 0 :(得分:0)

代码中的行

return xmlhttp.responseText;

没有任何地方可以返回值。你需要传递一个带有请求的回调函数来进一步处理它,或者你是否使用。

if(xmlHttp.readyState == 4)

条件。

答案 1 :(得分:0)

这是因为您的主要功能getNameFromSession没有返回任何内容。

您可以做的是将onreadystatechange处理程序的响应分配给变量,然后在调用getNameFromSession后检索变量。

答案 2 :(得分:0)

AJAX是异步的,意味着发送请求然后代码继续。您的返回语句在函数完成后发生。你应该将你需要做的任何事情都转移到函数本身。

答案 3 :(得分:0)

通过在xmlhttp.open(“GET”,url,true)中将第三个参数设为false来同步ajax。 通过这种方式,它将等待服务器在将控件返回到调用java脚本之前给出响应。

function getNameFromSession()
{
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
        alert ("Your browser does not support AJAX");
        return;
    }
    var url="getImageName.asp";
    url=url+"?fetch_name=1";
    xmlhttp.open("GET",url,false);
    xmlhttp.send(null); 
    xmlhttp.onreadystatechange=function(){

        if (xmlhttp.readyState==4)
        {
           alert(xmlhttp.responseText);
           return xmlhttp.responseText;

        }

    }
}