我正在调用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调用函数
答案 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; } } }