gpt4 book ai didi

php - 从 Javascript 函数返回一个值

转载 作者:行者123 更新时间:2023-11-30 06:59:52 27 4
gpt4 key购买 nike

我正在使用以下代码显示函数 test2 返回的值。

显示的输出是:x 的值是:undefined

谁能帮我解释一下如何从函数 test2 返回一个值?请注意函数test2XMLHTTPRequest

<script language="javascript">

function test1()
{
var x = test2();
alert('Value of x is: '+x);
}

function test2()
{
if(window.XMLHttpRequest)
{
abcd= new XMLHttpRequest();
}
else
{
abcd=new ActiveXObject("Microsoft.XMLHTTP");
}

abcd.onreadystatechange=function()
{
if (abcd.readyState==4 && abcd.status==200)
{
return abcd.responseText; // it is getting value 2 here
}
else if(abcd.readyState < 4)
{
return -1;
}
}
abcd.open("GET",sam.php,true);
abcd.send();
}

</script>

最佳答案

听起来您希望 XML HTTP 请求的值是 test2 的返回值。这是不可能的,因为此 XML HTTP 请求异步执行,而 test2 同步执行。

处理此问题的正确方法是将回调传递给 test2 以在请求完成时执行。回调提供从 XML HTTP 请求返回的值。例如

function test1() {
test2(function (x) {
alert('The value of x is ' + x);
});
}

function test2(callback) {
...
abcd.onreadystatechange=function() {
if (abcd.readyState==4 && abcd.status==200) {
callback(abcd.responseText);
} else {
callback(-1);
}
}
...
}

关于php - 从 Javascript 函数返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com