从ajax调用到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未定义为值,有人能告诉我如何将此ajax中的值返回给javascript调用函数代码中的行吗从ajax调用到javascript的返回值,javascript,ajax,asp.net-ajax,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=
return xmlhttp.responseText;
没有可将值返回到的位置。您需要传递一个回调函数和请求,以进一步处理它,或者使用
if(xmlHttp.readyState == 4)
有条件。代码中的行
return xmlhttp.responseText;
没有可将值返回到的位置。您需要传递一个回调函数和请求,以进一步处理它,或者使用
if(xmlHttp.readyState == 4)
有条件。这是因为您的主函数getNameFromSession没有返回任何内容
您可以做的是将onreadystatechange处理程序的响应分配给一个变量,然后在调用getNameFromSession后检索该变量。这是因为您的主函数getNameFromSession没有返回任何内容
您可以做的是将onreadystatechange处理程序的响应分配给一个变量,然后在调用getNameFromSession后检索该变量。AJAX是异步的,这意味着发送请求,然后代码继续。return语句发生在函数完成之后。您应该将需要对该返回值执行的任何操作移动到函数本身。AJAX是异步的,这意味着发送请求,然后代码继续。return语句发生在函数完成之后。您应该将需要对该返回值执行的任何操作移动到函数本身。只需在xmlhttp.openGET、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; } } }
只需在xmlhttp.openGET、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; } } }
返回将值保存到getNameFromSession函数范围内的变量中,然后返回最后一个括号之前的值。返回将值保存到getNameFromSession函数范围内的变量中,然后返回最后一个括号之前的值。