繁体   English   中英

从ajax调用返回值到javascript

[英]return value from ajax call to javascript

我正在调用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;

        }

    }
}

函数中的alert显示正确的值,但是javascript将undefined定义为value,有人可以告诉我如何将此ajax中的值返回给javascript调用函数

您代码中的行

return xmlhttp.responseText;

无处可返回值。 您可能需要在请求中传递一个回调函数以进一步处理它,或者对它做什么。

if(xmlHttp.readyState == 4)

有条件的。

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

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

AJAX是异步的,这意味着将发送请求,然后代码继续进行。 您的return语句在函数完成后发生。 您应该将与该返回值相关的所有操作移到函数本身中。

只需通过在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;

        }

    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM