[英]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.