从ajax调用返回值到javascript

return value from ajax call to javascript

本文关键字:javascript 返回值 调用 ajax      更新时间:2023-09-26

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

函数getNameFromSession(){xmlhttp=GetXmlHttpObject();if(xmlhttp==null){alert("您的浏览器不支持AJAX");回来}var url="getImageName.asp";url=url+"?fetch_name=1";xmlhttp.open("GET",url,true);xmlhttp.send(null);xmlhttp.onreadystatechange=函数(){if(xmlhttp.readyState==4){alert(xmlhttp.responseText);返回xmlhttp.responseText;}}}

函数中的alert显示了正确的值,但javascript未定义为值,有人能告诉我如何从这个ajax向javascript调用函数

返回值吗

代码中的行

return xmlhttp.responseText;

并没有返回值的地方。您要么需要传递一个带有请求的回调函数来进一步处理它,要么处理它。

if(xmlHttp.readyState == 4)

有条件的。

这是因为您的主函数getNameFromSession没有返回任何内容。

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

AJAX是异步的,这意味着发送请求,然后代码继续。返回语句发生在函数完成之后。您应该将需要对该返回值执行的任何操作移动到函数本身中。

只需将xmlhttp.open中的第三个参数设置为false("GET",url,true)来同步ajax。通过这种方式,它将等待服务器给出响应,然后再将控件返回到调用java脚本。

函数getNameFromSession(){xmlhttp=GetXmlHttpObject();if(xmlhttp==null){alert("您的浏览器不支持AJAX");回来}var url="getImageName.asp";url=url+"?fetch_name=1";xmlhttp.open("GET",url,false);xmlhttp.send(null);xmlhttp.onreadystatechange=函数(){if(xmlhttp.readyState==4){alert(xmlhttp.responseText);返回xmlhttp.responseText;}}}