gpt4 book ai didi

Javascript 从 http 请求返回值

转载 作者:行者123 更新时间:2023-11-28 12:09:10 24 4
gpt4 key购买 nike

php 脚本正在返回一个值,并且第一个警报有效。

我无法在第二次警报时引用 httprequest 返回的值。理想情况下,我会调用函数 get_captcha() - 它会返回值 - 只是我不知道如何执行此操作。

我意识到全局设置变量可能不是最好的方法,但这是我能想到的唯一方法 - 我对替代方案持开放态度。

  <script type="text/javascript">
var url = "captcha_get_code.php"; // The server-side script
var cap;

function ValidateForm() {
get_captcha()
alert(cap); //undefined

}

function get_captcha() {
http.open("GET", url, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);

}

function handleHttpResponse() {
if (http.readyState == 4) {
if (http.status==200) {
//return http.responseText;
cap=http.responseText;
alert(cap); //this one works
}

}
}



function getHTTPObject() {
var xmlhttp;

if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
if (!xmlhttp){
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}

}
return xmlhttp;
}
var http = getHTTPObject(); // We create the HTTP Object





</script>

最佳答案

无法从成功的 XMLHttpRequest 调用中“返回”值。您可以在回调函数内执行您需要的任何类型的处理。

XMLHttpRequest 是异步执行的。你不能让你的代码“等待”它们(除非你让它们同步)(而且你真的真的不应该这样做)。然而,没有真正的需要,因为当请求完成时,运行时系统将调用您的“readystatechange”处理程序。从该代码中,您可以自由地执行您需要的任何操作。

这一事实要求您对如何编写代码进行一些不同的思考,但这并不是真正的调整。例如,如果您倾向于编写“processResults()”函数,那么您仍然可以这样做 - 您只需从“readystatechange”处理程序内部调用该函数即可。

关于Javascript 从 http 请求返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5303025/

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