Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从ajax调用到javascript的返回值_Javascript_Ajax_Asp.net Ajax - Fatal编程技术网

从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=

我调用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调用函数代码中的行吗

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函数范围内的变量中,然后返回最后一个括号之前的值。